背景
在使用腾讯云或阿里云申请免费证书时,你可能已经注意到,有效期从原来的1年缩短到了3个月。这意味着你需要频繁更换证书,这无疑增加了维护工作量。幸运的是,我们可以使用acme.sh
自动生成和更新证书,从此告别手动搬运证书的烦恼。
安装acme.sh
首先,在你的主机系统上安装acme.sh
。执行以下命令进行安装:
curl https://get.acme.sh | sh -s email=你的邮箱
并创建 一个 shell 的 alias, 例如 .bashrc,方便你的使用: alias acme.sh=~/.acme.sh/acme.sh
获取腾讯云 SecretId 和 SecretKey
新建权限策略
1.进入到访问管理,点击策略
2.点击新建自定义策略,选择按策略语法创建
3.创建空模板,点击下一步
4.将策略语法修改为以下内筒
{
"statement": [
{
"action": [
"dnspod:DescribeRecordFilterList",
"dnspod:DescribeRecordList",
"dnspod:CreateRecord",
"dnspod:DeleteRecord"
],
"effect": "allow",
"resource": [
"*"
]
}
],
"version": "2.0"
}
新建子账号并关联权限策略
1.进入访问管理,进入用户列表页面,点击新建用户,选择快速创建。
2.修改访问方式为编程访问,选择用户权限,仅选择我们刚刚创建的权限,如下图展示。
3.保存SecretId和SecretKey
申请证书
1.将获取到的 SecretId 和 SecretKey 导入环境变量中,以便 acme.sh 调用。
export Tencent_SecretId="<Your SecretId>"
export Tencent_SecretKey="<Your SecretKey>"
2.使用 acme.sh 申请证书,例如:
acme.sh --issue --dns dns_tencent -d 你的域名
运行后,acme.sh
将自动为您的域名申请证书,并将证书文件保存在 ~/.acme.sh/example.com/
目录下。同时,acme.sh
会为您的域名配置证书的自动续期任务,无需您手动操作。这样一来,您可以省去频繁更新证书的烦恼,享受更加便捷的管理体验。
安装证书
完成申请后请将证书配置到您的网站中,以 Nginx 为例,示例如下:
server {
listen 443 ssl http2;
server_name example.com;
# 请替换为证书实际路径
ssl_certificate ~/.acme.sh/example.com//key.pem;
ssl_certificate_key ~/.acme.sh/example.com//cert.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_prefer_server_ciphers on;
}
问题
在生成证书中可能会遇到timeout情况,重新执行命令就行。
2 comments
想想你的文章写的特别好www.jiwenlaw.com
看的我热血沸腾啊https://www.237fa.com/