通过acme.sh申请和部署ssl免费证书
acme.sh申请和部署免费ssl证书:
代码: https://github.com/acmesh-official/get.acme.sh
安装:
# curl https://get.acme.sh | sh -s email=aaa@163.com
邮箱为CA申请证书时的email,安装后目录在 ~/.acme.sh/
会把 /root/.acme.sh/acme.sh 加入.bashrc别名,并增加一个cron任务(该任务会自动申请和部署新证书)。
# source ~/.bashrc
# acme.sh –version
v3.1.5
# crontab -l
46 3,9,15,21 * * * “/root/.acme.sh”/acme.sh –cron –home “/root/.acme.sh” > /dev/null
申请证书:
默认向ZeroSSL申请,切换为向Let’s Encrypt申请:
# acme.sh –set-default-ca –server letsencrypt
用的腾讯云的子账号api key方式修改dns解析记录,其他阿里云之类dns解析提供商也可以类似操作,临时export即可,后续会记住的:
# export Tencent_SecretId=”你的secretId”
# export Tencent_SecretKey=”你的secretKey”
# acme.sh –issue –dns dns_tencent -d max-shu.com -d *.max-shu.com
过程中会列出来保存位置: ~/.acme.sh/max-shu.com_ecc/ ,其中 max-shu.com.key 和 max-shu.com.cer、fullchain.cer 可用于nginx或apache。
又比如阿里云:
# export Ali_Key=”你的AccessKey_ID”
# export Ali_Secret=”你的AccessKey_Secret”
# acme.sh –issue –dns dns_ali -d max-shu.com -d *.max-shu.com
部署证书(后续的cron任务会记住,然后能够自动申请和部署):
# mkdir -p ~/.acme.sh/nginx/ssl/max-shu.com/
# acme.sh –install-cert -d max-shu.com –key-file ~/.acme.sh/nginx/ssl/max-shu.com/max-shu.com.key –fullchain-file ~/.acme.sh/nginx/ssl/max-shu.com/fullchain.cer –reloadcmd “nginx -s reload”
# chown -R nginx:nginx /root/.acme.sh/nginx/
# ll /root/.acme.sh/nginx/ssl/max-shu.com/