hexo的Nginx添加SSL实现HTTPS访问

实现Nginx添加SSL实现HTTPS访问

申请ssl

购买免费SSL证书

云盾证书服务 (aliyun.com)

image-20231109131810089

创建证书

数字证书管理服务管理控制台 - SSL 证书 (aliyun.com)

这里需要填写个人信息,如果域名和ssl都是阿里云里购买的,那就只要选择自动DNS验证,否则得手动验证,即添加DNS解析就好

下载证书

image-20231109132243262

image-20231109132254895

安装nginx

服务端(ubuntu)

更新源

1
2
3
4
# 获得源上的软件包列表信息
sudo apt-get update
# 更新本地软件
sudo apt-get upgrade

安装nginx

1
sudo apt-get install -y nginx

启动服务器

1
2
systemctl start nginx
systemctl enable nginx

nginx默认配置文件路径是:/etc/nginx

修改配置文件

1
2
3
4
etc/nginx
|- nginx.conf #主配置文件
|- conf.d/ # 默认读取的配置文件(自己创建)
|- *.conf

创建default.conf配置文件

1
2
sudo cp sites-available/default conf.d/default.conf
sudo vim default.conf

default.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
server {
listen 80;
server_name www.mufei.fun mufei.fun;
rewrite ^(.*) https://$server_name$1 permanent; #此句最关键
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name www.mufei.fun mufei.fun;
root /home/ubuntu/hexo;
index index.html;
ssl_certificate /etc/nginx/cert/mufei.fun.pem; #需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key /etc/nginx/cert/mufei.fun.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 TLSv1.1 TLSv1.2; #表示使用的TLS协议的类型。
ssl_prefer_server_ciphers on;

location / {
root /home/ubuntu/hexo;
index index.html;
# autoindex on; #资源站要加,加了就可以访问文件夹了
}
}

将ssl文件移入到/etc/nginx/cert/下面

应用配置文件

1
2
3
4
nginx -t		// 查看nginx状态(用来测试配置是否正确)
nginx -s reload // 重新载入配置文件
nginx -s reopen // 重启 Nginx
nginx -s stop // 停止 Nginx