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 将改用  ZeroSSLAugust-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