申请免费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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 执行下面命令之前,要把 pem、key 文件放在 /app/docker/nginx/conf/conf.d 目录下
cd /app/docker/nginx/conf/conf.d
mv *.pem my.pem
mv *.key my.key

# 2023-08-25 18:17:34 修改了一下(会与图片稍微有些不一致)
cat > ssl.conf << 'EOF'


# ^ 开始
# (.*) 匹配任意字符序列
# $ 结尾
# $1 正则捕获组 (.*)
# permanent 这会发出永久性重定向,将用户从 HTTP 重定向到 HTTPS
# http://taopanfeng.com/some/path
# ↓↓↓重定向↓↓↓
# https://taopanfeng.com/some/path
server {
listen 80;
server_name taopanfeng.com;
location / {
rewrite ^(.*)$ https://$host$1 permanent;
}
}


server {
listen 443 ssl;
server_name taopanfeng.com; # 证书绑定的域名

# ssl开头 证书相关
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;
}

# 匹配模式及顺序
#   location = /uri    =开头表示精确匹配,只有完全匹配上才能生效。
#   location ^~ /uri   ^~ 开头对URL路径进行前缀匹配,并且在正则之前。
#   location ~ pattern  ~开头表示区分大小写的正则匹配。
#   location ~* pattern  ~*开头表示不区分大小写的正则匹配。
#   location /uri     不带任何修饰符,也表示前缀匹配,但是在正则匹配之后。
#   location /      通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default。

# 当访问路径为 /taopanfeng-shopping 时,
# Nginx 会在 /usr/share/nginx/html/taopanfeng-shopping/dist/ 目录中查找文件,
# 如果路径是一个目录,会尝试返回目录下的 index.html 文件,
# 如果都没有找到,就返回 /taopanfeng-shopping/index.html 文件。
# 这通常用于单页应用(SPA Single Page Application)的路由处理,以确保前端路由在刷新或直接访问特定路由时能够正确工作。
#location /taopanfeng-shopping {
# alias /usr/share/nginx/html/taopanfeng-shopping/dist/;
# index index.html index.html;
# try_files $uri $uri/ /taopanfeng-shopping/index.html;
#}
#location /big-event-admin {
# alias /usr/share/nginx/html/big-event-admin/dist/;
# index index.html index.html;
# try_files $uri $uri/ /big-event-admin/index.html;
#}

}
EOF

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

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

腾讯云(放弃)

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

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

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

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