acme.sh
实现了 acme
协议, 可以从 letsencrypt
生成免费的证书。
- 安装 acme.sh
- 生成证书
- copy 证书到 nginx/apache 或者其他服务
- 更新证书
安装 acme.sh
安装很简单, 一个命令:
curl https://get.acme.sh | sh
普通用户和 root 用户都可以安装使用。
会安装在 ~/.acme.sh/
目录下,以后生成的证书也会在这里面,按照域名为文件夹安置。
理论上会自动添加一个 acme.sh
别名,但有时候并不会生成,需要手动执行以下命令:
source ~/.bashrc
生成证书
acme.sh
生成的证书只有三个月有效时间,然后再自动更新证书,所以,推荐使用 HTTP
验证的方式。
HTTP
方式需要在你的网站根目录下放置一个文件, 来验证你的域名所有权,完成验证。然后就可以生成证书了。
acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/
更推荐使用 Nginx
方式来验证,简单。
如果你用的 Nginx
服务器, 或者反代, acme.sh
还可以智能的从 Nginx
的配置中自动完成验证, 你不需要指定网站根目。
acme.sh --issue -d mydomain.com --nginx
经过一系列的操作,如果成功了,会在
~/.acme.sh/mydomain.com
生成对应的证书。
copy 证书到 nginx/apache 或者其他服务
不要直接复制证书。
acme.sh --installcert -d <domain>.com \
--key-file /etc/nginx/ssl/<domain>.com/<domain>.key \
--fullchain-file /etc/nginx/ssl/<domain>.com/fullchain.cer \
--reloadcmd "service nginx force-reload"
--reloadcmd
表示复制完成后重启服务器的命令,根据自己服务器状况填写。
/etc/nginx/ssl/<domain>.com/
需要自己建立好,如果文件夹不存在,会报错。
更新证书
目前证书在 60 天以后会自动更新,你无需任何操作。今后有可能会缩短这个时间,不过都是自动的,你不用关心。