SSL 证书配置
为网站配置 https
购买证书
登录阿里云后,搜索 SSL ,选择 个人测试证书,然后按下图所示操作,为自己的域名进行申请

证书申请一般一两个小时就会通过,如果长时间没有通过,检查一下是否有域名解析要求
通过之后,根据自己的服务器类型,下载对应格式的证书。笔者使用 nginx 格式的服务器,如果想跟着笔者一起使用 nginx,可以参考上一篇Nginx 反代理站外链接,这里就不再赘述

下载好,解压出来应该是两个文件 xx.xx.xx.pem 和 xx.xx.xx.key 。首先确认这个 xx.xx.xx 和自己要部署的域名完全一致,然后我们需要将 .pem 文件重命名后缀为 .cer

Nginx 配置
接下来连上我们的服务器,首先使用 nginx -t 查看配置文件在哪里
这里可以看到,在 /etc/nginx/ 文件夹内,切换到该文件夹下,可以看到有 conf.d 文件夹和刚刚看到的 nginx.conf 文件,注意我们要修改的是 conf.d 文件夹中的内容

进入到 conf.d 文件夹,新建一个文件夹 cert 将之前的两个证书文件 .cer 和 .key 使用 scp 等方式放到这个文件夹下

放好之后开始修改 server.conf,注意这个文件是笔者上一篇中自己创建的文件,如果是新做的项目,新建一个 xx.conf 文件即可。修改至如下格式,要同时有 http 和 https 的配置,并在 http 中添加重定向,将所有 http 请求重定向到 https。htpps 中的部分,只需要修改域名,证书文件路径,端口号即可(要修改的内容已全部高亮)
server {
listen 80;
server_name App1.domain.com; # 这里换成你解析的域名
# 添加下面这行,将所有的http请求重定向到https
rewrite ^(.*)$ https://$host$1;
location / {
proxy_pass http://localhost:xxxx; # 这里换成你该域名对应项目所在的端口号
}
}
server {
listen 443 ssl;
server_name App1.domain.com; # 这里换成你解析的域名
# 证书文件路径
ssl_certificate conf.d/cert/xx.xx.xx.cer;
ssl_certificate_key conf.d/cert/xx.xx.xx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:xxxx; # 这里换成你该域名对应项目所在的端口号
}
}
验证结果
修改完成后,使用 nginx -s reload 来应用配置,回到网页里刷新,看到出现 🔒 图标,就表明配置成功,快乐使用 https 了

可以点击 🔒 图标,查看证书具体内容


后记
阿里云的免费 SSL 每次只能维持三个月,应该是要每三个月重新申请,只需要每次去服务器换一下文件即可。对于个人项目来说,完全够用

