准备 SSL 证书和私钥

确保你已经有了 SSL 证书和对应的私钥。这些通常是从证书颁发机构获得的。你将需要两个文件:

  • 证书文件(例如 zhangwurui.cn.pem),包含公钥部分。
  • 私钥文件(例如 zhangwurui.cn.key),必须保持私密。

这里以阿里云的免费证书为例,你可以在 阿里云 购买证书,也可以使用免费的证书。

这里我已经登录了阿里云,然后点击 左上角产品,选择 安全菜单下的 SSL证书,点击 免费证书,立即购买,然后申请你需要的证书即可。这里我已经买过了,不能再次购买了,一年只能购买一次免费证书。

购买证书次数
购买证书次数

购买完成后,点击创建证书。填写域名验证方式,联系人等必填信息。注意CSR生成方式不需要变更,使用默认系统生成即可。点击提交审核等待审核完成。几分钟后,证书就会审核通过。

创建证书
创建证书

审核通过后点击下载按钮,这里我选择nginx。把下载的文件进行解压。

下载证书
下载证书

解压后的放置linux服务器下的/etc/nginx/ssl/目录下。如果没有ssl目录,则创建一个。

如果没有安装nginx,你可以看我的这篇文章 nginx的使用

通过xshell登录linux服务器,进入/etc/nginx/目录,然后把下载的ssl证书拷贝到/etc/nginx/ssl/目录下。

编辑 Nginx 配置

编辑 Nginx 的配置文件,通常是 /etc/nginx/nginx.conf/etc/nginx/sites-available/default(取决于你的系统和配置方式)。在这个文件里,你需要做两件事:

  • 监听 443 端口:这是 HTTPS 的默认端口。
  • 配置 SSL 证书和私钥

一个典型的 SSL 配置段落可能看起来像这样:

        
nginx
12345678910111213141516171819
server { listen 443 ssl server_name zhangwurui.cn # 密钥 ssl_certificate /etc/nginx/ssl/yourdomain.pem; # key ssl_certificate_key /etc/nginx/ssl/yourdomain.key; # 可选的 SSL 配置项,根据需要调整 ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_ecdh_curve secp384r1; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; # 其他 location 和 server 配置... }

强制重定向 HTTP 到 HTTPS

如果你希望所有 HTTP 流量都被重定向到 HTTPS,你还需要在配置文件中的 HTTP 服务器块中添加如下代码:

        
nginx
12345
server { listen 80; server_name zhangwurui.cn; return 301 https://$host$request_uri; }

测试配置并重启 Nginx

在完成配置后,先测试配置是否正确,然后重启 Nginx 服务。

        
bash
12
sudo nginx -t # 测试配置文件是否有语法错误 sudo systemctl restart nginx # 或者 sudo service nginx restart

验证 SSL 配置

最后,在浏览器中访问你的网站,确认 HTTPS 是否正常工作。

完!