使用 ACME 自动更新 SSL 证书
相较于腾讯、阿里等云服务厂商,ACME 可免费生成 通配符证书
,且仅需 5 分钟
便可完成配置,还可 自动永久续签
。庞大的用户量和开源属性也决定其不会夹带后门,免于引狼入室。
证书生成
把 logi.im
改成你的域名,不要加诸如 www、blog
等子域,因脚本可生成通配证书。同时还需填上 Dnspod 或 Aliyun 的 Key
和 Secret
,你使用了哪家的 DNS 解析,就填写哪家。
#!/usr/bin/env bash
domain="logi.im"
# ALIYUN
export Ali_Key=
export Ali_Secret=
# DNSPOD
export DP_Id=
export DP_Key=
acme="~/.acme.sh/acme.sh"
cert_dir="/etc/nginx/ssl/$domain"
[[ ! -d "$cert_dir" ]] && mkdir -p "$cert_dir"
[[ ! -f "$acme" ]] && curl https://get.acme.sh | sh
[[ "$Ali_Key" ]] && dns_api=dns_ali || dns_api=dns_dp
$acme --issue --dns $dns_api -d $domain -d *.$domain
$acme --install-cert -d $domain -d *.$domain \
--key-file $cert_dir/privkey.pem \
--fullchain-file $cert_dir/fullchain.pem \
--reloadcmd "nginx -s reload"
更改配置
下面的内容非可执行代码,而是 Nginx 配置文件
。找到站点对应文件,把 <your_domain>
改成你的域名,如 logi.im
,无需子域名,修改保持后重启服务 nginx -s reload
。
server {
# SSL-START
listen 443 ssl http2;
ssl_certificate /etc/nginx/ssl/<your_domain>/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/<your_domain>/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
# SSL-END
}
经过以上配置,SSL
证书便可自动续期,无需人工干预。