ACME 自动申请及管理证书
安装acme.sh
执行以下命令,acme.sh 会安装到 ~/.acme.sh 目录下。
1 | curl https://get.acme.sh | sh |
安装成功后执行 source ~/.bashrc 以确保脚本所设置的命令别名生效。
如果安装报错,那么可能是因为系统缺少 acme.sh 所需要的依赖项,acme.sh 的依赖项主要是 netcat(nc),我们通过以下命令来安装这些依赖项,然后重新安装一遍 acme.sh:
1 | apt -y install netcat socat |
使用 acme.sh 生成证书及更新
生成证书
执行以下命令生成证书:
以下的命令会临时监听 80 端口,请确保执行该命令前 80 端口没有使用
1 | ~/.acme.sh/acme.sh --issue -d mydomain.me --standalone -k ec-256 |
-k
表示密钥长度,后面的值可以是 ec-256 、ec-384、2048、3072、4096、8192,带有 ec 表示生成的是 ECC 证书,没有则是 RSA 证书。在安全性上 256 位的 ECC 证书等同于 3072 位的 RSA 证书。
证书更新
证书更新
由于 Let’s Encrypt 的证书有效期只有 3 个月,因此需要 90 天至少要更新一次证书,acme.sh 脚本会每 60 天自动更新证书。也可以手动更新。
手动更新 ECC 证书,执行:
1 | ~/.acme.sh/acme.sh --renew -d mydomain.com --force --ecc |
如果是 RSA 证书则执行:
1 | ~/.acme.sh/acme.sh --renew -d mydomain.com --force |
安装证书
ECC 证书
1 | ~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key --ecc |
RSA 证书1
~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key
注意:无论什么情况,密钥(即上面的v2ray.key)都不能泄漏,如果你不幸泄漏了密钥,可以使用 acme.sh 将原证书吊销,再生成新的证书,吊销方法请自行参考 acme.sh 的手册
如果更新完证书后需要自动重启服务,则需添加--reloadcmd "nginx -s reload"
1 | ~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/v2ray/v2ray.crt --keypath /etc/v2ray/v2ray.key --ecc --reloadcmd "service xxx restart" |
验证
操作完成部署后,可以在此网站进行tls 部署验证
https://www.ssllabs.com/ssltest/index.html