将 http 升级为 https好处多多,我主要介绍我的配置流程

购买ssl证书

阿里云的免费ssl证书>

image-20200816141213648

点击购买证书

录制_2020_08_16_14_13_45_154

免费域名不需要什么特别繁琐的流程。等到域名下发后,下载对应你服务器的证书版本,我这里就nginx了

下载证书

录制_2020_08_16_14_18_20_226

下载好的证书中会存在两个文件:

image-20200816142308573

这两个文件是我们需要放到服务器上的文件,可以用任何工具放到你的服务器的nginx安装目录下,因为写配置文件的时候,就会默认从nginx的安装目录下找。

我的nginx安装目录下有个 conf.d 我的博客配置文件在这里,所以我的https 配置也放在这里了。

image-20200816145233345

证书安装

根据官方文档的提示,要在nginx上使用https服务,需要在 .conf 配置文件中添加一个server,用来监控443端口的请求,也就是说,博客内容跳转都要设置在监控443的server下了,如图:

image-20200816145928892

官方文档下的配置(我也是根据这个改的):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 以下属性中以ssl开头的属性代表与证书配置有关,其他属性请根据自己的需要进行配置。
server {
listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。
server_name localhost; #将localhost修改为您证书绑定的域名,例如:www.example.com。
root html;
index index.html index.htm;
ssl_certificate cert/domain name.pem; #将domain name.pem替换成您证书的文件名。
ssl_certificate_key cert/domain name.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;
location / {
root html; #站点目录。
index index.html index.htm;
}
}

证书跳转设置

上面的步骤执行完毕后,如果你访问博客域名, xxx.xxx 会发现你的博客还是处理http的访问状态,这是因为浏览器的请求监听端口默认是80,所以,我们要将博客原来的80端口的博客 配置信息删除,然后将80端口的请求跳转到443就行了

image-20200816150657154

官方指导:

设置HTTP请求自动跳转HTTPS。
在需要跳转的HTTP站点下添加以下rewrite语句,实现HTTP访问自动跳转到HTTPS页面。

1
2
3
4
5
6
7
8
server {
listen 80;
server_name localhost; #将localhost修改为您证书绑定的域名,例如:www.example.com。
rewrite ^(.*)$ https://$host$1 permanent; #将所有http请求通过rewrite重定向到https。
location / {
index index.html index.htm;
}
}

最后别忘了在阿里的安全策略组开启443的入方向端口