一、安装acme.sh
安装过程不会污染已有的系统任何功能和文件
curl https://get.acme.sh | sh
安装完成后的目录在~/.acme.sh/
.
使用命令:
cd /root/.acme.sh
进入.acme.sh目录。
二、生成SSL证书
acme.sh 实现了 acme 协议支持的所有验证协议.另外还支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的 API,可以自动添加 TXT 记录来验证,不需要人工操作,十分便捷。
这里以 dnspod 为例,首先登录 dnspod,生成你的 api id 和 api key,记下他们,然后依次输入
export DP_Id="1234" export DP_Key="sADDsdasdgdsf" ~/.acme.sh/acme.sh --issue --dns dns_dp -d example.com -d *.example.com
以上代码中将
https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
api id
和 api key
换成dnspod网站上生成的值,example.com
换成你自己的域名,dns_dp
参数表示使用dnspod的 API,其他解析商的环境变量名是不一样的,详情去这里看https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E
证书就会自动生成了,申请完成后屏显会输出证书路径。这里给出的 api id 和 api key 会被自动记录下来, 将来你在使用 dnspod api 的时候, 就不需要再次指定了. 直接输入生成就好了:
acme.sh --issue --dns dns_dp -d example.com -d *.example.com
三、copy/安装 证书
前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方.
注意, 默认生成的证书都放在安装目录下:
~/.acme.sh/
, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化.正确的使用方法是使用
--installcert
命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 例如:
cme.sh --installcert -d <domain>.com \ --key-file /etc/nginx/ssl/<domain>.key \ --fullchain-file /etc/nginx/ssl/fullchain.cer \ --reloadcmd "service nginx force-reload"
这里指定的所有参数都会被自动记录下来, 并在将来证书自动更新以后, 被再次自动调用。
四、 更新证书
目前证书在 60 天以后会自动更新, 你无需任何操作. 今后有可能会缩短这个时间, 不过都是自动的, 你不用关心.
五、更新 acme.sh
目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.
升级 acme.sh 到最新版 :
acme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
之后, acme.sh 就会自动保持更新了.
你也可以随时关闭自动更新:
acme.sh --upgrade --auto-upgrade 0