在阿里云的ECS服务器上面部署了Hexo博客,并且之前购买了自己的域名,部署完成之后想要开启HTTPS,阿里云上有提供免费的SSL证书,之前“购买”过两个,现在又重新“拾起”,这里记录一下具体的配置步骤。
一、在阿里云上获取免费的SSL证书
在搜索框中搜索“数字证书管理服务(SSL证书)”,点击左侧菜单栏中的SSL证书,可以看到免费证书的标签。
需要先购买证书,之后创建证书,创建证书的时候需要填写域名。
之后经过一段时间的审核,可以在列表中查看到新创建的证书了。
在等待审核的过程中,可以同步进行域名验证,需要在域名解析中添加指定的DNS记录,如下图所示:
话说这个免费的证书,之前有效时间为12个月,现在免费版本的有效时间缩短为3个月了,可以选择升级服务以从3个月延长为12个月。不想掏钱啊,就到时间有邮件提醒之后及时申请并部署新的证书吧。
二、部署证书
1、下载证书后手动上传
将申请下来的证书下载到本地
因为服务器上使用的是nginx部署的Hexo博客,所以下载的是对应的Nginx版本
创建目录
1 2
| $ cd /etc/nginx/conf.d/ $ mkdir cert
|
将下载的证书文件和私钥文件上传到刚才创建的目录中。通过ftp方式上传
2、通过阿里云数字证书管理服务证书部署服务
在SSL证书一览页面可以点击“部署”按钮,将证书部署到指定的资源上,资源可以是ECS服务器、Web应用防火墙等。
点击部署后,出现如下窗口:
在对应的输入框中输入证书相关内容,例如:
配置项 |
描述 |
示例 |
证书路径 |
设置证书存放在服务器上的绝对路径 |
/etc/nginx/conf.d/cert/z2huo.cn.pem |
私钥路径 |
设置证书私钥文件存放在服务器上的绝对路径 |
/etc/nginx/conf.d/cert/z2huo.cn.key |
证书链路径 |
设置证书链文件存放在服务器上的绝对路径 |
|
重启命令 |
设置重启或重新加载服务器中配置证书的web应用的命令 |
nginx -s reload |
三、修改nginx配置
编辑Nginx配置文件nginx.conf,修改与证书相关的配置,定位到如下位置,删除前面的#
注释。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name _; root /usr/share/nginx/html;
ssl_certificate "/etc/pki/nginx/server.crt"; ssl_certificate_key "/etc/pki/nginx/private/server.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers PROFILE=SYSTEM; ssl_prefer_server_ciphers on;
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html; location = /40x.html { }
error_page 500 502 503 504 /50x.html; location = /50x.html { } }
|
将内容修改成:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name z2huo.cn www.z2huo.cn blog.z2huo.cn; root /var/www/hexo;
ssl_certificate "/etc/nginx/conf.d/cert/z2huo.cn.pem"; ssl_certificate_key "/etc/nginx/conf.d/cert/z2huo.cn.key"; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on;
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html; location = /40x.html { }
error_page 500 502 503 504 /50x.html; location = /50x.html { } }
|
可以选择将HTTP请求自动跳转到HTTPS。
修改原有的监听80端口的配置,原配置为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| server { listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html; Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
|
修改为:
1 2 3 4 5
| server { listen 80; server_name _; rewrite ^(.*)$ https://$host$1; }
|
修改好nginx配置之后重新加载配置文件或重启nginx服务:
1 2 3
| $ service nginx reload $ service nginx restart $ /usr/sbin/nginx -s reload
|
相关链接
OB links
#Nginx #阿里云 #SSL #HTTPS #建站