Nginx服务器中安装SSL证书

环境

  • 腾讯云域名
  • 为个人博客配置https

前提条件

  • 已准备文件远程拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。

  • 已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。

  • 已在当前服务器中安装配置 Nginx 服务

操作步骤

  1. 获取证书

    1.1 在腾讯云域名页面可以看到申请免费证书,如下图:
    1.1

    1.2 选择亚洲诚信免费申请的就可以了,一般有效期为一年。
    在这里插入图片描述

    1.3 按照要求填写相关信息,在一个工作左右就可以收到证书,一般几分钟就行。
    在这里插入图片描述

  2. 证书安装

    2.1 申请成功证书之后,直接下载。
    在这里插入图片描述

    2.2 解压后的文件如下,由于我们是使用nginx服务器配置只需关注nginx下的文件即可:

    在这里插入图片描述

    2.3 使用WinSCP将证书nginx目录下的文件拷贝至你的服务器安装Nginx服务的配置路径中;

    • 默认路径: /usr/local/nginx/conf
    • 自定义路径:如下图,即nginx安装目录下。
      在这里插入图片描述
  3. 修改配置文件

    3.1 修改配置文件

    server {
        #SSL 访问端口号为 443
        listen 443 ssl; 
     #填写绑定证书的域名
    
    ​    server_name xxx.today www.xxx.today; 
    
     client_max_body_size 1024m;
    
     #证书文件名称
        ssl_certificate 1_sumu.today_bundle.crt; 
     #私钥文件名称
        ssl_certificate_key 2_sumu.today.key; 
        ssl_session_timeout 5m;
     #请按照以下协议配置
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
        ssl_prefer_server_ciphers on;
        location / {
        #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
    
         # 反向代理地址,注意 /
        proxy_pass http://127.0.0.1:8090/;
    
        proxy_redirect     off;
        # 代理请求头
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
       }
       # 将http请求转发至https
        server {
        listen 80;
    
        server_name xxx.today www.xxx.today;
    
        return 301 https://$server_name$request_uri;
        }
    
    }
    
    
  4. 重启nginx

    4.1 nginx基本命令

    • 检查配置文件:nginx -t -c nginx.conf
    • 重新加载配置文件:nginx -s reload
    • 重启Nginx:nginx -s reopen
    • 停止Nginx: nginx -s stop

    4.2 修改完配置文件后,首先检查配置文件有没有错误。
    在这里插入图片描述

    出现successful即代表配置文件没有问题。

    4.3 依次执行以下命令,就配置成功了。
    在这里插入图片描述

    5.遇到的问题

    问题1:重启nginx提示:nginx: [warn] conflicting server name "www.xxx.com" on 0.0.0.0:443, ignored

    答案1:说明www.xxx.com域名有重复,在多个配置文件中存在,可以检查以下配置文件。

    问题2:无法访问显示503问题。

    答案2:检查你的反向代理,本地的路径有没有错误。

Q.E.D.