前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >acme.sh生成自动续费的免费SSL证书

acme.sh生成自动续费的免费SSL证书

作者头像
骤雨重山
发布2022-01-17 10:21:00
2K0
发布2022-01-17 10:21:00
举报
文章被收录于专栏:骤雨重山

acme.sh 实现了 acme 协议,可以从 letsencrypt 生成免费的证书。 一个完全用Shell(Unix shell)语言编写的ACME协议客户端,支持ACME v1和ACME v2,只需一个脚本即可生成发布,续订和自动安装SSL证书。

安装acme.sh

代码语言:javascript
复制
curl  https://get.acme.sh | sh

把 acme.sh 安装到你的 home 目录下:

代码语言:javascript
复制
~/.acme.sh/

创建 一个 bash 的 alias

代码语言:javascript
复制
alias acme.sh=~/.acme.sh/acme.sh

执行完毕后,将自动为你生成 crontab 任务,每天 0:00 点自动检测所有的证书, 如果快过期了,需要更新,则会自动更新证书。

生成证书

acme.sh 实现了 acme 协议支持的所有验证协议。一般有两种方式验证: http 和 dns 验证,这里我们以 http 为例。 http 方式需要在你的网站根目录下放置一个文件,来验证你的域名所有权,完成验证,然后就可以生成证书了。

代码语言:javascript
复制
acme.sh  --issue  -d mydomain.com -d www.mydomain.com  --webroot  /home/wwwroot/mydomain.com/

只需要指定域名,并指定域名所在的网站根目录,acme.sh 会全自动的生成验证文件,并放到网站的根目录,然后自动完成验证,最后会聪明的删除验证文件,整个过程对网站没有任何影响。

如果你用的 apache/nginx 服务器,acme.sh 还可以智能的从配置中自动完成验证, 你不需要指定网站根目录:

Apache

代码语言:javascript
复制
acme.sh --issue  -d mydomain.com   --apache

Nginx

代码语言:javascript
复制
acme.sh --issue  -d mydomain.com   --nginx

copy/安装证书

前面证书生成以后,接下来需要把证书 copy 到真正需要用它的地方。

Apache

代码语言:javascript
复制
acme.sh --install-cert -d example.com \
--cert-file      /usr/local/apache/domain.cert  \
--key-file       /usr/local/apache/domain.key  \
--fullchain-file /usr/local/apache/domain.pem \
--reloadcmd     "service apache2 force-reload"

Nginx

代码语言:javascript
复制
acme.sh --install-cert -d example.com \
--key-file       /usr/local/nginx/cert/domain.key  \
--fullchain-file /usr/local/nginx/cert/domain.pem \
--reloadcmd     "service nginx force-reload"

service nginx force-reload 将会重启 nginx ,centos7 以上使用 systemctl 命令

修改配置

此处以 nginx 配置为例

代码语言:javascript
复制
server {
    listen  80;
    server_name     mydomain.com www.mydomain.com;
    return  301 https://$server_name$request_uri;
}
server {
    listen               443 ssl;
    server_name          mydomain.com www.mydomain.com;
    ssl_certificate      /usr/local/nginx/cert/domain.pem;
    ssl_certificate_key  /usr/local/nginx/cert/domain.key;

    location / {
        root /home/wwwroot/mydomain.com/public;
        index index.html;
    }
}

更新证书

证书会自动更新,无需关心

相关链接

Github:https://github.com/acmesh-official/acme.sh

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装acme.sh
  • 生成证书
    • Apache
      • Nginx
      • copy/安装证书
        • Apache
          • Nginx
          • 修改配置
          • 更新证书
          • 相关链接
          相关产品与服务
          SSL 证书
          腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档