Hexo使用https访问(SSL加密)[butterfly主题]
设置SSL证书加密
首先去申请SSl证书,当你获得key 和 crt证书文件后下载到服务器。随后修改hexo中的"server.js"文件,如下[可直接复制]
建议先备份原文件!!!
1 | var fs = require('fs'); |
1 | server { |
1 | ### SSL 证书申请与管理 |
- 方法二:使用
wget
命令安装1
wget -O - https://get.acme.sh | sh
安装完成后,重新加载环境变量:
1 | source ~/.bashrc |
配置 acme.sh
获取 API 密钥
- 如果使用 DNS 验证方式申请证书,需要获取域名注册商的 API 密钥。
- 以阿里云为例,登录阿里云控制台,在“AccessKey 管理”中创建 AccessKey,记录下
AccessKey ID
和AccessKey Secret
。
设置 API 密钥
- 以阿里云为例,执行以下命令:
1
2export Ali_Key="your_ali_key"
export Ali_Secret="your_ali_secret" - 将
your_ali_key
和your_ali_secret
替换为实际的阿里云 AccessKey ID 和 AccessKey Secret。
- 以阿里云为例,执行以下命令:
申请证书
使用 DNS 验证申请证书
- 以阿里云 DNS 为例,执行以下命令:
1
acme.sh --issue -d example.com -d www.example.com --dns dns_ali
- 将
example.com
和www.example.com
替换为要申请证书的域名。如果只申请单个域名的证书,可只写一个-d
参数。
- 以阿里云 DNS 为例,执行以下命令:
使用 Webroot 验证申请证书
- 如果服务器上已经部署了网站,可以使用 Webroot 验证方式。执行以下命令:
1
acme.sh --issue -d example.com -d www.example.com --webroot /var/www/html
- 将
example.com
和www.example.com
替换为要申请证书的域名,/var/www/html
替换为网站的根目录路径。
- 如果服务器上已经部署了网站,可以使用 Webroot 验证方式。执行以下命令:
安装证书
- 以 Nginx 为例,执行以下命令安装证书:
1
2
3
4acme.sh --installcert -d example.com \
--key-file /etc/nginx/ssl/example.com.key \
--fullchain-file /etc/nginx/ssl/example.com.crt \
--reloadcmd "service nginx reload"- 将
example.com
替换为实际的域名,/etc/nginx/ssl
替换为 Nginx 服务器配置的证书存储路径。
- 将
自动更新证书
acme.sh
默认会自动更新证书,通常在证书到期前 60 天会自动进行更新。- 也可以手动执行以下命令来更新证书:
1
acme.sh --renew -d example.com
- 将
example.com
替换为要更新证书的域名。
- 将
注意事项
- 确保服务器能够正常访问 Let’s Encrypt 的服务器。
- 确保域名解析和服务器配置正确。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Stone's Blog!
评论