阿里云免费SSL申请及Nginx配置
阿里云免费的证书为digicert的RSA证书,有效期为一年,到期后可重新申请,每年有20个可以申请

如图可以看到创建证书的按钮即可创建属于自己的SSL RSA证书
接下来如图配置提交审核即可

提交审核后,即可在分页栏看到你自己创建的那一项,审核需要点时间,但不用太久就能收到短信的通知

当证书的状态变为已签发的时候,即可下载使用
点击操作栏的下载可以看到

这里我们选择 Nginx 的进行下载
下载后能看到这样的一个zip压缩包

将其上传至你的 nginx 服务器
上传有很多工具,大伙也可以直接sftp 的 put 命令进行上传
上传后,我将该压缩包放在了 /etc/nginx/ssl 中,ssl 这个文件夹是我自己创建的,另外例如我的这个证书的域名是link.ahogek.com,我就会再建一个名为link的文件夹专门放这个压缩包解压出来的一个pem文件和一个key文件。解压可以使用unzip也可以使用unar 的命令
然后就可以开始配置nginx了,我一般在conf.d目录下新建配置文件。例如 /etc/nginx/conf.d/link.conf
server {
listen 80;
server_name link.ahogek.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name link.ahogek.com;
ssl_certificate ssl/link/link.ahogek.com.pem;
ssl_certificate_key ssl/link/link.ahogek.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
location / {
proxy_pass http://127.0.0.1:8000;
}
}
在配置文件中,第一个 server 配置用于当用户使用 http 进行访问的时候自动跳转至 https
关于$host $request_uri 相当于请求的host与uri 更多详细可以查看官方文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#variables
而第二个 server 就是用来配置我们的 https。
listen 443 ssl; server_name link.ahogek.com; 这两个很好理解,就是监听 link.ahogek.com的https的443端口并使用 SSL/TLS 协议。
ssl_certificate ssl/link/link.ahogek.com.pem;
ssl_certificate_key ssl/link/link.ahogek.com.key;
这个配置便是配置证书,也就是刚才我们解压的那两个文件,这里使用了相对路径,也就是/etc/nginx下的路径,大家也可以使用绝对路径。
ssl_protocols TLSv1.2 TLSv1.3;
ssl_protocols 指令用于在 Nginx 配置中指定支持的 SSL/TLS 协议版本,这里配置的 TLSv1.2 和 TLSv1.3 是因为它们被认为相对较新且安全。nignx默认为 TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; 详细可参考官方文档:http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_ciphers用于配置加密套件,用于加密数据,不同的客户端对加密套件的支持可能并不一样,需要权衡安全性、兼容性和性能。官方文档:http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_ciphers另外就如文档里说的,大家可以使用 openssl ciphers 查看系统支持的所有的加密套件
最后这里给大家推荐一个网站用于生成 SSL 的配置,是Mozilla做的
https://ssl-config.mozilla.org/
就如上面配置完成之后,大家就可以访问 https 的网站了。需要注意服务器是否开启了443端口,我这边的服务器不是centos,而是ubuntu,我有开启ufw,所以如果你也有开启的话记得使用 ufw allow 443 开放其端口,更多关于ufw的指令可查阅:https://www.digitalocean.com/community/tutorials/ufw-essentials-common-firewall-rules-and-commands