Nginx配置https协议 超详细!!!

本文章基于Linux操作系统演示。
准备工作:有公网IP的服务器(CentOS7)、申请一个域名、为域名申请SSL证书、将服务器的公网IP和域名进行绑定。

一、下载安装Nginx

Nginx下载网址:http://nginx.org/en/download.html
百度网盘链接:https://pan.baidu.com/s/1o2riynHpHobwOTF9C9R0RA
提取码:coff

  • 安装c++编译器和nginx需要的依赖,否在在安装的时候会报错!
#下载依赖
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  • 将下载的安装包上传到Linux服务器上,一般都会上传到opt目录下,解压安装包
#解压到/usr/local目录下
tar -zxvf nginx-1.20.1.tar.gz -C /usr/local
#进入/usr/local目录下
cd /usr/local
#感觉名字太长了可以改下名字
mv ./nginx-1.20.1 nginx
  • 进入nginx的目录,初始化并编译安装nginx,这里要注意一下,初始化的一些路径一定要按照自己安装nginx的目录来!
#进入nginx的目录,我的我改了名字 没改名的按照自己的目录进入
cd /usr/local/nginx
#初始化nginx
./configure --prefix=/usr/local/nginx/ --pid-path=/run/nginx.pid  --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log  --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre --with-stream
#编译
make
#安装
make intall
  • 启动nginx
#进入nginx的sbin目录下
cd /usr/local/nginx/sbin
#启动nginx
./nginx
  • 访问Nginx 默认端口是80,直接在浏览器输入服务器的ip,出现下图所示的界面,说明nginx安装成功。
    在这里插入图片描述
    注意:如果访问失败,可能是防火墙没开80端口,也有可能是启动的时候80端口占用。本文主要是讲解怎么配置https协议的,在这里我就不做太多的赘述了,端口占用可以找到nginx的配置文件改一下监听的端口号,防火墙开放端口在搭建gitlab文章中也有提到

二、配置Https协议

首先要从阿里云上为域名申请一个SSL证书,也就是https协议。
然后将证书文件和证书密钥文件下载到本地,然后解压 一定要先解压,再上传至服务器。一般都会放在/usr/local/ssl目录下,ssl目录需要自己创建。

在这里插入图片描述

  • 找的nginx的配置文件,这里最好是备份一下配置文件,给自己留条后路。
  • 打开后找到 HTTPS server模块,一般都在最下面给注释掉了
server {
        listen       443 ssl;  #https协议默认端口443
        server_name  [自己服务器IP绑定的域名];

        ssl_certificate      /usr/local/ssl/test.com.pem; #需要将test.com.pem替换成已上传的证书文件的名称。
        ssl_certificate_key  /usr/local/ssl/test.com.key;  #需要将test.com.key替换已上传的证书密钥文件的名称。

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;

		location / {
        		index index.html index.htm;
        }
  • 如果想配置http协议指向https,可以参考下面(选配),如果不想配置可以直接保存退出
server {
    listen 80;
    server_name [换成证书绑定的域名]; #和上面https一样的
    #也可以直接指向配置的https协议域名
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        index index.html index.htm;
    }
}
  • 配置完毕!保存退出,重新启动nginx
#进到nginx的sbin目录下
cd /usr/local/nginx/sbin
#重启nginx
./nginx -s reload
  • 在浏览器中直接输入你配置的域名,出现下图所示的界面说明配置成功
    在这里插入图片描述
如果没出现上面的界面,排查一下问题
 1、443端口未开放
 2、如果没配置http指向https,用http协议访问也是不行的 要用https协议
 3、域名未在工信部备案或者在备案中
  • 端口开放
#开发443端口
firewall-cmd --zone=public --add-port=443/tcp --permanent
#重启防火墙
firewall-cmd --reload
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Docker中配置Nginx以使用HTTPS,可以按照以下步骤进行操作: 1. 生成SSL证书和密钥文件: - 首,确保你已经安装了openssl工具。 - 执行以下命令生成私钥文件: ``` openssl genrsa -out server.key 2048 ``` - 然后,执行以下命令生成证书签名求(CSR)文件: ``` openssl req -new -key server.key -out server.csr ``` - 最后,执行以下命令自签名生成证书文件: ``` openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt ``` 2. 创建Nginx配置文件: - 在宿主机上创建一个目录,用于存放Nginx配置文件和SSL证书文件。 - 创建一个名为 `nginx.conf` 的Nginx配置文件,示例配置如下: ```nginx events { worker_connections 1024; } http { server { listen 80; server_name example.com; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { root /usr/share/nginx/html; index index.html; } } } ``` - 将生成的证书文件 `server.crt` 和私钥文件 `server.key` 复制到上述配置文件中指定的路径 `/etc/nginx/ssl/`。 3. 构建并运行Nginx容器: - 使用以下命令构建Nginx容器: ```shell docker build -t my-nginx . ``` - 使用以下命令运行Nginx容器: ```shell docker run --name nginx -p 80:80 -p 443:443 \ -v /path/to/nginx.conf:/etc/nginx/nginx.conf \ -v /path/to/ssl:/etc/nginx/ssl \ -v /path/to/html:/usr/share/nginx/html \ -d --restart=always my-nginx ``` 其中,将 `/path/to/nginx.conf` 替换为你的配置文件所在的路径,将 `/path/to/ssl` 替换为存放SSL证书的路径,将 `/path/to/html` 替换为存放网站内容的路径。 4. 确保防火墙允许流量通过80端口和443端口: - 如果你使用的是Linux系统,可以使用以下命令开启端口: ```shell sudo ufw allow 80 sudo ufw allow 443 ``` 现在,你的Nginx容器已经配置为使用HTTPS。你可以通过访问 `https://example.com` 来测试是否成功。记得将 `example.com` 替换为你的域名或IP地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值