Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程

这博客越来越卡,从统计数据了解到跳出率差不多 85% ,新用户进入差不多要 5 秒左右,简直卡的不行。感觉我迟早要升级服务器配置。但是在升级前,想先将图片做好对象存储。在配置阿里云 OSS 对象存储之前需要准备好一个泛域名证书。

现在网站使用的证书是最初建站时送的一年宝塔免费证书。半小时 宝塔搭建一个部署SSL证书 配置伪静态实现301跳转HTTPS的网站

了解到使用 acme.sh 可以免费生成 Let's Encrypt 泛域名证书,然后自己操作一番,步骤虽然多,但只要操作一次以后就一劳永逸,只要需要填写证书,就可以用他们。

 

该文章对应视频教程 https://www.youtube.com/watch?v=RxYAPItx-5E 

 

准备

需要准备好一台服务器,这里当然使用我安装宝塔面板的网站服务器。

其次要给一个域名生成证书, Let's Encrypt 要验证域名的所有权。毕竟不能随便给个域名生成证书,然后配置还希望它有效吧。

Let’s Encrypt` 支持通过 DNS 解析一条 TXT 记录来验证。 我使用的方法也是这种,因为该脚本acme.sh 提供了API快速设置。(后面会提)

但是这API并不是每个人都能使用,这里我的域名服务器是阿里云DNS,这里有点特殊,每个人可能不一样。如果你也在阿里云购买的域名,基本按照以下操作没问题的。如果不是在其他地方购买的,比如 GoDaddy 或者 Namesilo 等等,acme.sh 都有提供方法设置。具体后面见列表。

安装

这里我通过 xshell 远程登录到服务器,然后输入下面命令安装脚本。随便啥位置都行。

curl https://get.acme.sh | sh

不出意外,你会看到如下界面内容。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

开通阿里云AccessKeys子账户

前面说了阿里云DNS可以使用它们的API,可以看看你的DNS服务器在不在里面。我仔细看了,就算不在其中,通过一些方法也能使用其 DNS API ,所以不用放弃。

export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"

在里面可以找到,要使用此API,需要如上两个值。这两个值需要开通阿里云AccessKeys戳这里开通

如果你是第一次开通,并且没有开通子账户,会出现如下界面。其实 AccessKeys 并不是我第一次使用,以前使用都没用子账户,这次准备使用子账户。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

接着一直往下点击就是了。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

不出意外我们进入总览界面,接着创建一个新用户,毕竟我们目的就是这。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

取好名字,然后看你需求勾选,这里我并不需要这新用户登录界面,只要能在代码中使用 Key 就行。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

完成后出现如下内容,一定要记住其中的 AccessID 和 AccessKeySecret ,上面脚本中要填写的也就是这两个值。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

这一步点击完成后,AccessKeySecret 就不会再次出现,万一 万一 你弄丢了,也没事 ,再次生成一对就行,但是你用到他们的地方都要替换成新的。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

现在还不能直接将值填写进去使用,因为还要给这个新用户赋予权限。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

搜索 DNS 将 `AliyunDNSFullAccess ` 添加过去,其他不用就这一个可以了。最后点击确定

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

配置API

输入命令,修改 .bashrc 文件,将如上代码添加进去。记得修改成自己的 key 和 value 。

vim ~/.bashrc

这里插一句,如果 vim 指令不清楚的,我写详细点,懂的人不用看。

输入如上命令后

i

复制如上代码,用方向键控制到相应位置,然后右键粘贴

Esc

:wq


《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

出来后重新加载文件

source ~/.bashrc

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

生成泛域名证书

这里比较简单,就一行命令,记得替换成你自己的域名,两个位置都要替换。

acme.sh --issue --dns dns_ali -d guozh.net -d '*.guozh.net'

成功后界面上有文件的存放地址

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

可以进去看看

cd  /www/server/panel/vhost/cert/guozh.net/

有以下几个文件

-rw-r--r-- 1 root root 1648 Jul 12 16:27 ca.cer
-rw-r--r-- 1 root root 3563 Jul 12 16:27 fullchain.cer
-rw-r--r-- 1 root root 1915 Jul 12 16:27 guozh.net.cer
-rw-r--r-- 1 root root  558 Jul 12 16:27 guozh.net.conf
-rw-r--r-- 1 root root  980 Jul 12 16:26 guozh.net.csr
-rw-r--r-- 1 root root  220 Jul 12 16:26 guozh.net.csr.conf
-rw-r--r-- 1 root root 1675 Jul 12 16:26 guozh.net.key

其中证书文件 fullchain.cer 密钥文件 guozh.net.key 以后在使用别人服务时要填写SSL证书内容就是这两个。

前面说了Let’s Encrypt` 支持通过 DNS 解析一条 TXT 记录来验证。 但是我们在整个安装和生成过程并没有看到啥时候添加了TXT记录,其实有的,如果在安装过程中仔细看日志,就能看到先是 Add 然后 Check 最后 Remove 。

因为我这域名在阿里云购买的,阿里云给域名添加解析能看到记录,自己去登录控制台查看域名的解析记录就会发现。下图是我的。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

证书续期

Let's Encrypt 证书的有效期是三个月。但我们通过脚本acme.sh启动就不用担心,因为它写入了定时命令。用 crontab -l 列出定时任务。

《Let's Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程》

后面三个看运行的命令估计与什么日志有关,第一个是我们要看的。从命令看,每天 0 点 13 分这脚本会做点啥事,不知道是重启还是续期之类的,总之不用担心。

好的,一切搞定。替换以前的证书,另开一篇文章吧,如果有需求可以关注。

如果帮到你,麻烦点个赞可以吗。

 

怎么说呢?不管有用没,还是想加上这句
老郭种树原创,转载请加上Let’s Encrypt泛域名证书生成 acme.sh免费申请使用配置 地表最强教程
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注