安装acme工具
代码语言:javascript复制curl https://get.acme.sh | sh
source ~/.bashrc
acme.sh --register-account -m im@lianst.com
更换根证书
代码语言:javascript复制acme.sh --set-default-ca --server zerossl
申请证书
web方式
代码语言:javascript复制acme.sh --issue -d www.lianjiale.com -d lianjiale.com --webroot /data/wwwroot/www.lianjiale.com/
DNS方式
代码语言:javascript复制export HE_Username=<YOUR NAME>
export HE_Password=<YOUR PASSWORD>
export CF_Key="62b881f55580e507d454********"
export CF_Email="login email"
export DP_Id="AKID0oMTLxINBj0*************"
export DP_Key="RbU8VbQzHI2WjfKiqh**********"
常用dns验证
Cloudfare
代码语言:javascript复制acme.sh --issue --dns dns_cf -d DOMAIN
he
代码语言:javascript复制acme.sh --issue --dns dns_he -d DOMAIN
Godaddy
代码语言:javascript复制acme.sh --issue --dns dns_gd
Dnspod
代码语言:javascript复制acme.sh --issue --dns dns_dp -d DOMAIN
安装证书
copy证书并指定nginx reload命令
代码语言:javascript复制acme.sh --installcert -d wiz.nginx.top
--key-file /usr/local/nginx/conf/ssl/wiz.nginx.top.key
--fullchain-file /usr/local/nginx/conf/ssl/wiz.nginx.top.cer
--reloadcmd "/usr/local/nginx/sbin/nginx -s reload"
生成 dhparam.pem 文件
代码语言:javascript复制openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
配置nginx
代码语言:javascript复制server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name www.lianjiale.com lianjiale.com;
ssl_certificate /usr/local/nginx/conf/ssl/www.lianjiale.com.cer;
ssl_certificate_key /usr/local/nginx/conf/ssl/www.lianjiale.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
...
}
自动续约
acme安装的时候就会自动添加crond计划任务来处理续约,当然也是可以手动来renew的。
代码语言:javascript复制### acme添加的crond
[root@VM-4-16-centos acme]# crontab -l
*/5 * * * * flock -xn /tmp/stargate.lock -c '/usr/local/qcloud/stargate/admin/start.sh > /dev/null 2>&1 &'
27 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null
手动renew
代码语言:javascript复制acme.sh --cron -f
设置acme自动更新
代码语言:javascript复制acme.sh --upgrade --auto-upgrade
其他
注册用户
代码语言:javascript复制acme.sh --register-account -m im@lianst.com
颁发通配符
颁发通配符证书非常的简单,你只需要给一个通配符域作为-d参数。
代码语言:javascript复制acme.sh --issue -d example.com -d '*.example.com' --dns dns_cf --keylength ec-256
检查证书到期时间
代码语言:javascript复制acme.sh --cron --home ~/.acme.sh/
# [Thu 10 Mar 2022 04:15:54 PM CST] ===Starting cron===
# [Thu 10 Mar 2022 04:15:54 PM CST] Renew: 'nginx.top'
# [Thu 10 Mar 2022 04:15:54 PM CST] Skip, Next renewal time is: Mon 09 May 2023 06:38:32 AM UTC
# [Thu 10 Mar 2022 04:15:54 PM CST] Add '--force' to force to renew.
# [Thu 10 Mar 2022 04:15:54 PM CST] Skipped nginx.top_ecc
# [Thu 10 Mar 2022 04:15:54 PM CST] ===End cron===
证书更新
重新申请签发证书, 设置定时任务后所有证书将每60天自动更新一次,当然您也可以强制更新证书:
代码语言:javascript复制acme.sh --renew -d example.com --force [--ecc] # ecc 参数, 表明只是针对颁发的ECC证书。
acme.sh --renew -d example.com --force
停止更新证书
您可以执行以下操作从更新列表中删除证书:
代码语言:javascript复制acme.sh --remove -d example.com [--ecc]
注意, 证书/密钥文件不会从磁盘中删除。
自动更新acme
启用自动升级保持acme.sh为最新版本,禁用自动更新。
代码语言:javascript复制acme.sh --upgrade --auto-upgrade
acme.sh --upgrade --auto-upgrade 0
查看证书列表
代码语言:javascript复制acme.sh --list
删除证书
代码语言:javascript复制acme.sh remove <SAN_Domains>