Nginx 服务器安装 SSL 证书和重定向 HTTP 请求

本文记录了 Nginx 服务器安装 SSL 证书,以及重定向 HTTP 请求为 HTTPS 的详细配置过程。

前言

域名有了,也通过备案了,SSL 的证书也申请到了,现在开始来安装一下 SSL 证书。

文中使用的域名为 dancying.cn ,证书为腾讯云的免费 SSL 证书。

Nginx 的版本为 nginx/1.25.4

文中使用的是腾讯云 Linux 服务器,系统镜像为 CentOS 7.6 的版本。

文中使用的命令均为 root 用户执行。

安装步骤

此部分正式开始安装 SSL 证书(其中 HTTP 重定向为 HTTPS 是顺带的)。

上传证书

从 Windows 上传证书文件到 Linux 服务器有好几种方法,例如

  • 使用 FTP 软件
  • 使用 rz 命令
  • 腾讯云服务器可以使用 OrcaTerm 上传文件
  • 使用 vi 命令创建文件

此处选择使用 Linux 的 vi 命令创建证书文件,其他方式自行探索。

注意 : Nginx 需要的证书文件中必须包含 .crt 文件和 .key 文件

上传 .crt 文件

  1. 首先,进入 Linux 中的 Nginx 配置文件目录 /etc/nginx
    cd /etc/nginx/
    
  2. 使用 vi 命令创建 dancying.cn_bundle.crt 文件
    vi dancying.cn_bundle.crt
    
  3. 在 Windows 上使用文本编辑器打开 .crt 文件,并将内容复制粘贴至 Linux 中,保存后退出

上传 .key 文件

  1. 首先,进入 Linux 中的 Nginx 配置文件目录 /etc/nginx
    cd /etc/nginx/
    
  2. 使用 vi 命令创建 dancying.cn.key 文件
    vi dancying.cn.key
    
  3. 在 Windows 上使用文本编辑器打开 .key 文件,并将内容复制粘贴至 Linux 中,保存后退出

配置 Nginx

  1. 在 Linux 上使用 vi 命令创建并编辑文件 ssl_certificate.conf (文件名随意,以 .conf 结尾即可)
    vi /etc/nginx/conf.d/ssl_certificate.conf
    
  2. 将以下内容略作修改,然后复制粘贴至 ssl_certificate.conf 文件中,保存后退出
    server {
        # SSL 访问的默认端口号
        listen 443 ssl;
        # 绑定证书的域名地址
        server_name dancying.cn;
        # CRT 证书的路径
        ssl_certificate dancying.cn_bundle.crt;
        # KEY 文件的路径
        ssl_certificate_key dancying.cn.key;
        ssl_session_timeout 5m;
        # 协议配置
        ssl_protocols TLSv1.2 TLSv1.3;
        # 加密套件配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        # 网站主页路径
        root /usr/share/nginx/html;
        location / {
            index  index.php index.html index.htm;
        }
        location ~ .php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
    
    server {
        # HTTP 访问的默认端口
        listen 80;
        # 绑定证书的域名
        server_name dancying.cn;
        # 将 HTTP 请求重定向为 HTTPS
        return 301 https://$host$request_uri;
    }
    
  3. 查看 /etc/nginx/nginx.conf 文件,确认其中 http 块的 include /etc/nginx/conf.d/*.conf; 行未被注释
    cat /etc/nginx/nginx.conf
    
    • 以下为查看结果,部分内容省略
      ......
      http {
          ......
       
          include /etc/nginx/conf.d/*.conf;
       
          client_max_body_size 8M;
      }
      
  4. 使用 nginx -t 命令验证 /etc/nginx/nginx.conf 文件的语法是否存在问题
    nginx -t
    
    • 以下为命令执行的正常结果
      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
      nginx: configuration file /etc/nginx/nginx.conf test is successful
      
  5. 最后重新载入 Nginx 服务即可
    systemctl reload nginx
    

总结

我使用的是 WordPress 站点,所以需要同时在 WordPress 站点的 设置 -> 常规 中修改 WordPress地址(URL)站点地址(URL) 的值为 https 的协议。

参考链接

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇