接上一篇文章,我们使用hexo搭建了自己的blog并且发布了到了网上,这时还差一个ssl证书,不然别人访问总弹安全警告挺难受的。我们知道用宝塔自带的建站功能,是可以直接把ssl证书内容复制进去就OK的。但是我们并没有使用宝塔自带的建站功能,而是通过修改宝塔的Nginx配置文件来建立的一个网站。宝塔的Nginx配置文件和手动安装的Nginx配置文件在部署ssl证书的时候需要修改的内容还是略有区别的,为了避免大家踩坑,我在这里稍微啰嗦几句

上传ssl证书到服务器

我服务器是百度云的,目前使用的ssl证书是也百度智能云上申请的免费的ssl证书,一个用户最多申请20张,我就以此为例示范一下。

首先下载你的ssl证书,记得选择PEM_Nginx,不要选错。

下载解压出来的2个文件,用宝塔直接上传到你的服务器里,copy一下你上传文件所在的目录

修改Nginx配置文件

这里再重复一遍,宝塔的Nginx配置文件在这里!/www/server/nginx/conf/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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
server
{
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl http2; #这里加上这一句,打开ssl,不能使用ssl on
server_name blog.mznxbcv.top; #这里改成你自己的域名,确认一下,你申请的ssl证书是你自己的域名,不要在申请的时候忘记填写二级域名。
root /home/hexo;

if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
} #强制http跳转https
ssl_certificate /www/wwwroot/blog.mznxbcv.top.crt; #这是你上传到服务器的nginx证书的crt文件路径
ssl_certificate_key /www/wwwroot/blog.mznxbcv.top.key; #和crt的规则一样
ssl_session_cache shared:SSL:10m; #这几行代码都不要动,直接复制粘贴
ssl_session_timeout 5m; #这几行代码都不要动,直接复制粘贴
ssl_ciphers HIGH:!aNULL:!MD5; #这几行代码都不要动,直接复制粘贴
ssl_prefer_server_ciphers on; #这几行代码都不要动,直接复制粘贴,这之后的代码没有改动,不用看了

#error_page 404 /404.html;
include enable-php.conf;

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 12h;
}

location ~ /\.
{
deny all;
}

access_log /www/wwwlogs/access.log;
}

修改完保存,然后再在宝塔里重启一下Nginx就OK了,这回再访问你的博客网站就可以看到已经是https了