前言

给网站添加ssl的方式有很多种,例如可以直接使用云服务器商上的ssl服务,如阿里云,这个后续应该也会出一期记录。但是这次我们使用certbot来添加(certbot官网),话不多说,直接上流程

hexo博客的相关配置

在配置ssl前,首先要配置hexo的nginx文件,我的文件目录是/etc/nginx/vhost/hexo.conf,内容如下:

注:如果要使用类似我这个文件目录,还需要到nginx.conf文件的http{}块加上一行include /etc/nginx/vhost/*.conf,参考这篇文章

1
2
3
4
5
6
7
8
9
10
server {
listen 80;
server_name yourdomin.com; # 你的域名,如www.baidu.com

root /home/www/blog; # 你hexo的文件目录
index index.html index.htm;

location / {
}
}

把yourdomin.com换成你的域名,/home/www/blog换成你的hexo的文件目录

easyimage图床的相关配置

搭建流程参考这篇文章
docker-compose.yml内容如下,8089端口可以换成其他,但是切记要到云服务器安全组里放行对应端口,而且nginx配置文件里的端口也要保持一致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
version: '3.3'
services:
easyimage:
image: ddsderek/easyimage:latest
container_name: easyimage
ports:
- '8089:8089' # 这样配置方便后面用certbot生成ssl证书
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- DEBUG=false
volumes:
- '/home/data/docker_data/easyimage/config:/app/web/config'
- '/home/data/docker_data/easyimage/i:/app/web/i'
restart: unless-stopped

nginx配置文件,我的文件目录/etc/nginx/vhost/easyimage.conf,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name yourdomin.com;

location / {
proxy_pass http://localhost:8089; # 确保端口与 Docker Compose 映射的端口相匹配
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

安装snapd

完成相关配置后,就可以开始进行配置ssl的步骤了,首先安装snapd

1
sudo apt install snapd -y

如果安装完出现下面警告

1
2
3
Warning: /snap/bin was not found in your $PATH. If you've not restarted your session since you
installed snapd, try doing that. Please see https://forum.snapcraft.io/t/9469 for more
details.

先检查一下$PATH是否有/snap/bin

1
2
echo $PATH
返回以下信息:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

如果$PATH没有/snap/bin,需要将其添加到$PATH中,输入指令

1
2
3
vim ~/.profile
或者
vim ~/.bashrc

在末尾添加一行,保存退出

1
export PATH=$PATH:/snap/bin

运行指令

1
2
3
source ~/.profile
如果编辑的是.bashrc文件,则执行下面的
source ~/.bashrc

重新检查$PATH是否有/snap/bin

1
2
echo $PATH
返回以下信息:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

启动snapd

1
service snapd start

安装certbot

1
sudo snap install --classic certbot

创建软链接

1
sudo ln -s /snap/bin/certbot /usr/bin/certbot

使用certbot

建议逐行运行,第一次使用时需要填写一个邮箱,用于证书(3个月免费续期)快到期时提醒,然后一直y下一步。如无意外,就可以完成ssl的配置

1
2
sudo certbot --nginx -d yourdomin.com # 填写你的hexo域名
sudo certbot --nginx -d easyimage.yourdomin.com # 填写你的easyimage图床域名

测试

hexo博客

在浏览器输入https://yourdomin.com
打开你的hexo博客,应该就不会显示“不安全”,而是显示一个小锁了。

easyimage图床

在浏览器输入https://easyimage.yourdomin.com
如果打开图床网站失败,可以检查你的easyimage的配置文件,如我的文件目录是/home/data/docker_data/easyimage/config/config.php,检查domain和imgurl是否配置了端口,例如http://easyimage.yourdomin.com:8089
把:8089删掉后,重新启动docker compose
在你的docker-compose.yml文件所在目录执行以下指令,如我的目录是/home/data/docker_data/easyimage

1
docker-compose restart

重新输入https://easyimage.yourdomin.com尝试打开图床网站
如果还有问题欢迎留言!