前言

让博客通过https访问,可以增加网站的安全性,顺带着提升一点逼格。其实,最主要的还是,我看之前http访问时总有那个不安全字样,看着很碍眼,就像弄掉,今天终于如愿以偿。接下来就分享一下具体过程。

详细过程

购买SSL证书

打开阿里云>产品与服务>SSL证书
选择如下所示
购买ssl证书
然后填写相关信息,得到证书验证的相关参数

验证域名

我域名是在腾讯云上,在解析域名那里将上述得到的相关参数填入,然后回去进行验证。

下载证书并配置

验证通过之后即可下载证书,通过WinSCP将证书上传至云服务器,然后进入nginx配置文件进行配置,如下。

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
29
30
31
32
33
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name delaunay.cn www.delaunay.cn;
root /var/www/hexo;
rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

location / {
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

server {
listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
server_name delaunay.cn www.delaunay.cn; #将localhost修改为您证书绑定的域名,例如:www.example.com。
root /var/www/hexo;
index index.html index.htm;
ssl_certificate /etc/nginx/conf/cert/www.delaunay.cn.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key /etc/nginx/conf/cert/www.delaunay.cn.key; #将domain name.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;
}

重启Nginx

配置完毕之后重启nginx服务。

1
2
3
4
#停止服务
nginx -s stop
#重启服务
nginx -c /etc/nginx/nginx.conf

然后,再次访问域名就是通过https的方式了。
至此,搞定收工!