前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程

作者头像
李洋博客
发布2022-04-26 08:28:13
2.1K0
发布2022-04-26 08:28:13
举报
文章被收录于专栏:李洋博客

今天跟彧繎聊天时发现他的站使用的也是泛域名证书而且是一年了,问了他才知道是收费的,当然并不贵,只是我没有admin开启的邮箱也就是admin#talklee.com,所以无法申请,恰巧看到明月登楼博主的博客也是SSL证书就咨询了以下,发现他的是zerossl的证书,当然跟青云的一样有效期三个月,但是zerossl可以通过acme.sh实现自动续费,目前acme泛域名貌似仅仅命令形式申请,在官网上申请的时候需要一些费用才行。

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第1张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第1张

首先安装acme.sh

acme.sh 实现了 acme 协议,可以帮助你快速申请SSL证书,自动更新证书等操作,极大简化操作步骤。在使用之前,我们需要先安装,以下命令均在Linux系统完成。

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

或者:

代码语言:javascript
复制
wget -O - https://get.acme.sh | sh

使用curl命令安装的第一次出现了如图的错误,提示可以先安装 socat ,因为我不需要,所以没有安装。curl安装失败,可以使用wget命令尝试。

设置为自动更新(可选):

代码语言:javascript
复制
acme.sh --upgrade --auto-upgrade

acme的GitHub地址:https://github.com/acmesh-official/acme.sh

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第2张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第2张

安装acme完成后使用“acme.sh -v”命令查看版本号,代码如下:

代码语言:javascript
复制
acme.sh -v

如图所示,acme版本号是3.0.3,忽略图中的红色,因为测试的时候我用了两台机器,由于第一次安装各种错误,导致教程不完善,毕竟我也是摸着石头过河,对这些东西不熟悉,只能一点点来,至此安装acme完成。

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第3张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第3张

按照网上所说的acme.sh 2.x版本默认使用Let’s Encrypt作为服务提供商,3.x之后默认使用的是ZeroSSL,但是由于我第一次弄,所以还是重新更换默认服务商为ZeroSSL,代码如下:

代码语言:javascript
复制
acme.sh --set-default-ca --server zerossl

系统返回的命令就是zerossl服务商,然后我们设置下域名解析的DNS API。

配置DNS API

SSL证书验证可通过DNS验证、文件验证等多种方式,为了方便多个域名申请以及后续证书更新,推荐使用DNS API方式,不过在使用前需要先进行设置。 如果使用的DNSPOD(国内版),命令为:

代码语言:javascript
复制
export DP_Id="00521"
export DP_Key="talklee.com"

获取DNSPOD密钥可通过:https://console.dnspod.cn/account/token/token 获取,如图:

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第4张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第4张

将ID换成自己的,把Token值放在Key之内,然后执行命令,如图:

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第5张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第5张

acme.sh部署完成后我们来申请ZeroSSL泛域名SSL证书,需要先关联账户,执行下面的命令会自动关联账户,命令如下(admin@talklee.com改成你自己的ZeroSSL邮箱,即使没注册,运行命令之后也会自动注册的):

代码语言:javascript
复制
acme.sh --register-account -m admin@talklee.com --server zerossl

命令执行后,如图,会给你反馈一些信息,记下来就行,一般用不到。

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第6张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第6张

账户注册关联完成后申请泛域名证书,执行以下命令:

代码语言:javascript
复制
acme.sh --dns dns_dp --issue -d *.talklee.com

其中 dns_dp 是指DNSPOD,*.talklee.com 换成您的 域名即可,完成后如图:

注:acme.sh支持多个DNS服务商,演示用的dnspod,其他的服务商可以参考官方文档:https://github.com/acmesh-official/acme.sh/wiki/dnsapi  进行查看设置。

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第7张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第7张

生成过程中,几分钟左右即可完成,在验证的过程中会自动解析一个TXT记录,校验完成后会自动删除,所以建议大家选择DNS校验,这里就不截图了,感兴趣的可以是dnspod域名继续的记录查看。待验证通过后即表示申请成功,如图所示,会给我们反馈证书生成的路径:

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第8张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第8张

生成的证书放在了/root/.acme.sh/*.talklee.com目录,因为这是 acme.sh 脚本的内部使用目录,而且目录结构可能会变化,所以我们不能让 Nginx 的配置文件直接读取该目录下的证书文件,需要使用--installcert命令,指定目标位置,然后证书文件会被 copy 到相应的位置,我们先去/data/目录下新建一个/ssl/文件夹,进入文件夹在新建一个/域名文件夹/,例如, /data/ssl/talklee/,然后执行以下命令:

代码语言:javascript
复制
acme.sh --installcert -d *.talklee.com \
        --key-file /data/ssl/talklee/*.talklee.com.key \
        --fullchain-file /data/ssl/talklee/fullchain.cer \
        --reloadcmd "service nginx reload"
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第9张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第9张

把“*.talklee.com”替换成刚刚您自己申请的泛域名,再把“*.talklee.com.key”换成刚刚生成的SSL证书密钥文件,fullchain.cer不需要替换了,默认生成的就是这个。

另外还得说下,我直接执行命令的时候出错(cannot touch错误 ),所以才新建目录之后才执行,执行完成后,在目录中才能看见被Copy的文件。正确的显示如下:

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第10张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第10张

即完成命令之后会自动迁移,但是重启的命令出错,(重载代码已更新,不会出现图中错误),如图无效去宝塔软件面板中重载nginx即可,证书配置完成后,我们需要部署到网站,打开对应的站点,点击站点配置,在弹出的界面选择SSL,然后选择其他证书,把刚刚Copy的文件内容复制到证书里面,到密钥(KEY)对应的是.key文件,证书(PEM格式)对应的是.cer文件。

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第11张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第11张

复制完成后点击底部保存按钮,关于是否开启http强制跳转httls随意,建议开启,在右上角,设置完成后,打开配置文件,如图:

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第12张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第12张

其他内容都不需要管,因为是系统生成的,我们只需要把SSL证书的路径更换一些,代码如下:

代码语言:javascript
复制
ssl_certificate    /data/ssl/talklee/fullchain.cer;
ssl_certificate_key   /data/ssl/talklee/*.talklee.com.key;

把证书的路径换成我们刚刚Copy的路径即可。一切就绪之后我们打开网站,查看SSL证书,如图:

利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第13张
利用 acme.sh 申请 ZeroSSL 泛域名证书的图文教程 第13张

终于完成了,不怪彧繎博主了,真的是太费事,目前证书有效期是90天,三个月后按理说会自动续期,至于结果如何我们三个月后再见了,码了小半天的文章,测试了整整一天,我得去冲杯咖啡歇会,太尼玛累人了,当然网上的教程很多,只不过他们会忽略一步基本的步骤,导致我测试的时候有些抓瞎,所以才把完整的步骤整理后重新发布一篇,有问题留言反馈吧。

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

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

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

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

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