使用 acme.sh 制作 HTTPS 证书

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 天以后会自动更新,你无需任何操作。今后有可能会缩短这个时间,不过都是自动的,你不用关心。

原文阅读:使用 acme.sh 制作 HTTPS 证书

    原文作者:OnlyLing
    原文地址: https://segmentfault.com/a/1190000013759968
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞