Nginx服务器中安装SSL证书

环境

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

前提条件

  • 已准备文件远程拷贝软件,例如 WinSCP(建议从官方网站获取最新版本)。
  • 已准备远程登录工具,例如 PuTTY 或者 Xshell(建议从官方网站获取最新版本)。
  • 已在当前服务器中安装配置 Nginx 服务

操作步骤

  1. 获取证书
    1.1 在腾讯云域名页面可以看到申请免费证书,如下图:
  2. nginx ssl证书认证过程 nginx安装ssl证书_Nginx

  3. 1.2 选择亚洲诚信免费申请的就可以了,一般有效期为一年。
  4. nginx ssl证书认证过程 nginx安装ssl证书_nginx ssl证书认证过程_02

  5. 1.3 按照要求填写相关信息,在一个工作左右就可以收到证书,一般几分钟就行。
  6. nginx ssl证书认证过程 nginx安装ssl证书_nginx_03

  7. 证书安装
    2.1 申请成功证书之后,直接下载。

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

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

  • 默认路径: /usr/local/nginx/conf
  • 自定义路径:如下图,即nginx安装目录下。
  1. 修改配置文件
    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;
    }

}
  1. 重启nginx
    4.1 nginx基本命令
  • 检查配置文件:nginx -t -c nginx.conf
  • 重新加载配置文件:nginx -s reload
  • 重启Nginx:nginx -s reopen
  • 停止Nginx: nginx -s stop

4.2 修改完配置文件后,首先检查配置文件有没有错误。

nginx ssl证书认证过程 nginx安装ssl证书_nginx ssl证书认证过程_04

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

4.3 依次执行以下命令,就配置成功了。

nginx ssl证书认证过程 nginx安装ssl证书_Nginx_05

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:检查你的反向代理,本地的路径有没有错误。