申请免费SSL证书,实现 https 访问

注意:我的域名是阿里云的,我的服务器的腾讯云的。

Hexo 博客 之 添加 https

阿里云

如果是第一次操作的话,还真不知道咋整,只能一步步摸黑探索。
所以,这里先把步骤的小总结写在下面,先了解个大概,再操作:

1
2
3
4
5
6
7
8
9
10
11
12
步骤1、申请免费的SSL证书 DV 20

步骤2、验证 DNS解析
1. 你的域名服务是阿里云的,那么它会自动解析,直接点击验证通过即可。(我的情况)
2. 如果域名服务不是阿里云,那么你就要添加一条解析记录之后,再点击验证。

步骤3、部署
1. 如果你的服务器是阿里云的话,我猜测,直接点击部署就完成了。
2. 如果你的服务器不是阿里云的话,需要下载证书,然后进行部署。(我的情况)
我是采用Nginx进行部署的,所以我下载了服务器类型Nginx的证书。

步骤4、此时,已经可以实现 http、https都可以访问的话,那么恭喜你啦~

0元购买免费证书

访问 SSL证书
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建免费证书

访问地址 数字证书管理服务 — SSL证书
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

设置DNS云解析

打开 域名解析
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下载证书

因为我的服务器是腾讯云的,腾讯云和阿里云环境无法相通,所以无法一键部署。
只能下载证书,上传到腾讯云服务器上面。

在这里插入图片描述

上传服务器

(1)、启动好博客 hexo s 默认端口 4000。自定义端口可使用-p,例如:hexo s -p 18019

1
2
3
cd /app/git/blog/

hexo s

在这里插入图片描述

(2)、启动 nginx 容器(直接把下面命令复制粘贴即可)。
命令放在了 Nginx — 指定目录,为了不维护多处地方。
在这里插入图片描述

(3)、传入文件,修改文件名,创建 ssl.conf 的nginx配置文件。先把上面下载的证书放入目录/app/docker/nginx/conf/conf.d,然后再执行下面命令(直接把下面命令复制粘贴即可)。【红绿两处是需要修改的内容】
在这里插入图片描述

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
39
40
41
42
# 执行下面命令之前,要把 pem、key 文件放在 /app/docker/nginx/conf/conf.d 目录下
cd /app/docker/nginx/conf/conf.d
mv *.pem my.pem
mv *.key my.key

cat > ssl.conf << 'EOF'
server {
listen 80;
server_name taopanfeng.com;
rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。

location / {
proxy_pass http://10.0.4.8:4000;
}
}

# 以下属性中,以ssl开头的属性表示与证书配置有关。
server {
listen 443 ssl;
#配置HTTPS的默认访问端口为443。
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
#如果您使用Nginx 1.15.0及以上版本,请使用listen 443 ssl代替listen 443和ssl on。
server_name taopanfeng.com; #需要将yourdomain.com替换成证书绑定的域名。
#root /usr/share/nginx/html; #站点目录。
#index index.html index.htm;
ssl_certificate /etc/nginx/conf.d/my.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key /etc/nginx/conf.d/my.key; #需要将cert-file-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.1 TLSv1.2 TLSv1.3; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;
location / {
#root /usr/share/nginx/html; #站点目录。
#index index.html index.htm;
proxy_pass http://10.0.4.8:4000;
}
}
EOF

# 重启 nginx 容器,使配置文件生效
docker restart nginx01

(4)、访问,成功~
在这里插入图片描述

腾讯云(放弃)

下面的内容都是一开始的时候记录的,如果申请好证书,也是同理把证书仍服务器使用 nginx 代理。

1、打开 我的证书
在这里插入图片描述
在这里插入图片描述

证书申请
1、提交资料
在这里插入图片描述

2、选择验证方式
在这里插入图片描述