使用acme自动申请CA证书
转载自:acme.sh-实现自动化部署SSL证书 - 腾讯云开发者社区-腾讯云 (tencent.com) 感谢大佬的文章,很详细
其他参考:
最新版泛域名证书申请-阿里云开发者社区 (aliyun.com)
用acme.sh帮你免费且自动更新的HTTPS证书,省时又省力 - 知乎 (zhihu.com)
使用acme.sh和阿里云dns来自动签发ssl证书 - IT折腾记 (haoran.co)
安装acme
- 安装依赖:
apt update && apt install socat -y
- 一键安装:
wget -O - https://get.acme.sh | sh
设置相应的域名解析方key,需要添加相应的DNS修改权限
dnspod apiexport DP_Id="123xxx"
export DP_Key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
阿里云api
export Ali_Key="xxxxxxxxxxxxxx" |
Cloudflare api
export CF_Token="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" |
注意:必须source ~/.bashrc
生效上面导入
开始申请
自动 DNS 模式标准命令:
其中
dns_dp
为 腾讯云DNSPod.cn 服务商,自行根据官方dnsapi
修改.例如:dns_ali
为阿里云,dns_cf
为CLoudflare.
acme.sh --issue --server letsencrypt --dns dns_ali -d example.com -d www.example.com |
示例:
acme.sh --issue --server letsencrypt --dns dns_dp -d blog.baiyz.top |
acme.sh 可以同时申请多个域名.例如拥有域名abc.com,123.com,qqq.com,只需要在命令后加上
-d
空格
域名
即可多域名申请证书会将多个证书合并为一个证书,并存放到以第一个域名命名的文件夹内,证书信息仅显示第一个域名的信息.
示例:
acme.sh --issue --server letsencrypt --dns dns_dp -d abc.com -d *.abc.com -d 123.com -d *.123.com -d qqq.com -d *.qqq.com |
安装证书到指定文件夹
acme.sh
还支持自动部署证书到指定目录并重启nginx
或apache
服务,以确保新证书生效.参考如下:
acme.sh --installcert -d mydomain.com --key-file /root/private.key --fullchain-file /root/cert.crt --reloadcmd "service nginx force-reload" |
这里的mydomain.com
为你要申请证书的域名,key-file
和fullchain-file
后面的路径分别是密钥文件和证书文件的路径。使用该命令仅更改域名则将在root
目录下生成密钥文件private.key
和证书文件cert.crt
,密钥和证书路径则分别为/root/private.key
和/root/cert.crt
。--reloadcmd "service nginx force-reload"
则是重载nginx。
由于 Let’s Encrypt 的证书有效期为三个月.为避免证书失效 acme.sh 会每60天根据你的历史申请记录和部署记录重新续签证书并部署.