为博客配置 HTTPS(使用 Nginx 和手动替换证书)

为了提高我的博客的安全性,我决定为其启用 HTTPS。这不仅能保护用户的数据,还能提升网站的可信度。在这篇文章中,我将分享如何通过手动申请 SSL 证书,并使用 Nginx 配置 443 端口实现 HTTPS。

1. 申请免费的 SSL 证书

首先,我通过 阿里云的数字证书管理服务 获得了免费的 SSL 证书。获得的证书文件有三个主要文件:

  • sangui.top.key:私钥文件。

  • sangui.top_chain.crt:证书链文件。

  • sangui.top_public.crt:公钥证书。

将这三个文件下载并保存在本地,准备上传到服务器。

2. 配置 Nginx 支持 HTTPS

为了使我的网站支持 HTTPS,我需要配置 Nginx 以使用这些证书。

  1. 修改 Nginx 配置文件 /etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf 文件中,我确保有一个针对 HTTPS 的 server 块:

    server {
       listen 443 ssl;
       server_name www.sangui.top sangui.top;

       # 证书和私钥文件路径
       ssl_certificate /etc/nginx/ssl/sangui.top_public.crt;
       ssl_certificate_key /etc/nginx/ssl/sangui.top.key;
       ssl_trusted_certificate /etc/nginx/ssl/sangui.top_chain.crt;

       # 一些SSL优化设置
       ssl_protocols TLSv1.2 TLSv1.3;
       ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256';
       ssl_prefer_server_ciphers on;

       # 网站的根目录配置
       # root /usr/local/tomcat9/webapps/ROOT/;

       # 确保代理请求到 Tomcat
       location / {
           proxy_pass http://127.0.0.1:8080;  # 将请求代理到 Tomcat
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }

       # 错误页面配置
       error_page 404 /404.html;
       location = /40x.html {
      }

       error_page 500 502 503 504 /50x.html;
       location = /50x.html {
      }
    }
  2. 确保配置文件正确 Nginx 配置好后,我使用以下命令检查配置文件是否存在错误:

    sudo nginx -t

    如果没有错误,我就可以重新加载 Nginx 配置:

    sudo systemctl reload nginx

3. 替换证书文件

接下来,我将手动替换服务器上的证书文件。首先,备份原有的证书文件,以防万一:

sudo cp /etc/nginx/ssl/sangui.top_public.crt /etc/nginx/ssl/sangui.top_public.crt.bak
sudo cp /etc/nginx/ssl/sangui.top_chain.crt /etc/nginx/ssl/sangui.top_chain.crt.bak
sudo cp /etc/nginx/ssl/sangui.top.key /etc/nginx/ssl/sangui.top.key.bak

然后,将新获得的证书文件上传到服务器的 /etc/nginx/ssl/ 目录,并替换原来的证书文件:

sudo cp /path/to/new/sangui.top_public.crt /etc/nginx/ssl/sangui.top_public.crt
sudo cp /path/to/new/sangui.top_chain.crt /etc/nginx/ssl/sangui.top_chain.crt
sudo cp /path/to/new/sangui.top.key /etc/nginx/ssl/sangui.top.key

4. 测试和验证

替换证书文件后,我访问了 https://www.sangui.top,并点击浏览器的锁形图标来查看证书信息,确保新的证书已经生效。

我还通过以下命令验证证书是否已经更新:

openssl s_client -connect sangui.top:443

5. 证书续期

由于证书有效期为 90 天,证书到期后需要进行续期。每次申请新证书时,我会替换服务器上的旧证书文件,并确保 Nginx 配置指向新的证书文件。

6. 总结

通过这篇文章,我成功地将 HTTPS 配置到我的博客网站。手动替换证书文件的过程其实相对简单,只要确保配置文件正确并且证书文件路径指向新的证书即可。此外,定期检查和替换证书是维护网站安全性的重要工作。

  • 微信
  • 赶快加我聊天吧
  • QQ
  • 赶快加我聊天吧
  • weinxin
三桂

发表评论 取消回复 您未登录,登录后才能评论,前往登录