自动生成 let‘s encrypt 的免费https证书
acme.sh 实现了 acme 协议, 可以从 let‘s encrypt 生成免费的证书.
下载
wget -O -
https://get.acme.sh | sh
访问控制 RAM dns-https
先执行以下export初始化阿里云dns信息。
AccessKeyID:LcdfeRq83xEPvkdfdfUkP AccessKeySecret:jaowgSwCviqfddfdjX3qWlroLlQ7J
export Ali_Key="LTAdfdfdI4FdzfdfdkSNHUkP"
export Ali_Secret="jaowgdfdfdfdfSwCviqmdfdejX3qWlroLlQ7J"
生成ssl证书
bash acme.sh --issue --dns dns_ali -d fffmo.com -d *.fffmo.com --debug --force
以上是 域名通配符。也可以-d指定单个域名。
acme.sh is using ZeroSSL as default CA now. 报错。
从 acme.sh 开始,将发布 v3.0,其中默认 CA 将改用
ZeroSSL。August-1st 2021
解决记录: 增加参数–server letsencrypt强制使用letsencrypt 昨晚CA server。如下
bash acme.sh --issue --dns dns_ali -d www.f2bb.com --debug --force --server letsencrypt
copy证书
bash acme.sh --install-cert -d fffmo.com --key-file /usr/local/nginx/conf/fffmo.com.key --fullchain-file /usr/local/nginx/conf/fullchain_fffmo.cer --reloadcmd " /usr/local/nginx/sbin/nginx -s reload"
私钥、证书链拷到相关目录,也可以直接引用acme.sh生成的文件路径。另外apache还需要 证书文件。nginx不需要,只用配置 私钥、证书链
The Ali_Key and Ali_Secret will be saved in ~/.acme.sh/account.conf and will be reused when needed.
应用证书
listen 443 ssl ;
charset utf8,gbk;
server_name fffmo.com www.fffmo.com ;
#ssl on;
ssl_certificate /usr/local/nginx/conf/fullchain.cer;
ssl_certificate_key /usr/local/nginx/conf/fffmo.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
证书自动更新
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.
更新acme.sh
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh –upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh –upgrade –auto-upgrade 0
证书手动更新
1 使用命令更新acme:cd /root/.acme.sh ; acme.sh –upgrade
**2 更新域名(包括单域名和子域名)证书:
#bash acme.sh -- renew --dns dns\_ali -d fffmo.com -d \*.fffmo.com --debug --force**
bash acme.sh -- renew --dns dns_ali -d fffmo.com -d *.fffmo.com --debug --force
最好是分开执行
bash acme.sh --renew --dns dns_ali -d f2bb.com -d www.f2bb.com --debug --force
bash acme.sh --renew --dns dns_ali -d f2bb.com -d c.f2bb.com --debug --force
bash acme.sh --renew --dns dns_ali -d f2bb.com -d f2bb.com --debug --force
3 重启nginx