Hexo 网站配置免费阿里云证书

原来的个人网站 leehao.me 使用了阿里云的负载均衡服务,因此 HTTPS 证书也是部署在负载均衡服务器上。文章《在阿里云部署 Hexo 网站》介绍了采用负载均衡方式来部署网站的方法。
考虑到网站访问流量不高且为了减少费用,决定不再使用负载均衡服务,而是直接采用单个 ECS 服务器的方式来部署网站。采用新的方式部署网站后,为了同样让网站支持 https,需要重新对 https 证书进行配置。

购买免费的阿里云证书

阿里云提供免费的证书服务,购买路径为,首页- 产品 - 安全 - CA 证书服务,选择免费型 DV SSL 证书类型,如下图所示:

图:在阿里云购买免费的证书服务

下载证书

购买证书后,进入阿里云控制台,下载证书。由于 Hexo 网站采用 Nginx 进行部署,因此,我们控制台选择 下载证证书 for Nginx。
打开下载的证书文件夹,可以看到里面包含两个文件,分别为 .key 文件和 .pem 文件。

安装证书

下载好证书后,我们就可以安装证书了。关于如果安装证书,我们可以参考阿里云控制台的说明,具体步骤如下。

(1)服务器放置证书
在网站服务器创建目录 /etc/nginx/cert/,这个目录用于存在证书文件。创建好目录后,我们将证书上传到这个目录。

(2) 修改 Nginx 配置

网站的 Nginx 配置为文件 /etc/nginx/conf.d/hexo.conf。hexo.conf 配置文件需要添加端口 443 的监听,443 端口用于 https 协议。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
listen 443;
server_name leehao.me;
charset utf-8;
client_max_body_size 2M;

ssl on;
root html;
index index.html index.htm;
ssl_certificate /etc/nginx/cert/214316615920393.pem;
ssl_certificate_key /etc/nginx/cert/214316615920393.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html/public;
index index.html;
}
}

为了处理用户使用 http 协议访问网站的情况,需要修改原有端口 80 的监听配置:

1
2
3
4
server {
listen 80;
return 301 https://leehao.me$request_uri;
}

这样,当用户使用 http 协议访问网站时,会自动进行 301 跳转,以 https 协议访问网站。

(3)重启 Nginx

为使网站的 Nginx 生效,执行命令nginx -s reload重启 Nginx。

(4)访问测试

打开浏览器,输入地址 https://leehao.me/ ,可以正常访问网站。


图:使用 https 访问 hexo 网站

Hexo 网站的完整 Nginx 配置 hexo.conf

参考资料

  1. https://www.aliyun.com