使用acme脚本获取tls证书
acme脚本为github开源项目,项目地址为https://github.com/acmesh-official/acme.sh
说明:
此脚本会每天 0:00 点自动检测所有的证书, 如果快过期了, 需要更新, 则会自动更新证书。
安装过程不会污染已有的系统任何功能和文件, 所有的修改都限制在安装目录中: ~/.acme.sh/
注意:如果不使用root用户,需要提前调整权限
1.安装acme.sh
安装命令:
curl https://get.acme.sh | sh
脚本会自动创建 一个 bash 的 alias, 方便你的使用:
alias acme.sh=~/.acme.sh/acme.sh
安装后需要重启终端,以使命令生效.
2.通过http方式生成证书
http 方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证. 然后就可以生成证书了.
需要指定域名与网站根目录
acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
3.copy/安装 证书
不要直接使用原证书
生成的证书在~/.acme.sh
目录下,需要将证书copy到使用的地方
使用--install-cert
命令来copy证书,例如:
Apach example:
acme.sh --install-cert -d example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
#重新加载配置
--reloadcmd "service apache2 force-reload"
Nginx example:
acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
#重新加载配置
--reloadcmd "service nginx force-reload"
注意:这里指定的所有参数都会被自动记录下来, 并在将来证书自动更新以后, 被再次自动调用
4. 更新 acme.sh
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
shellacme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0
Comments NOTHING