免费的SSL证书(Let‘s Encrypt / acme)

Let’s Encrypt

一、简介

Let’s Encrypt 是一个由非营利性组织 互联网安全研究小组(ISRG)提供的免费、自动化和开放的证书颁发机构(CA)。
简单的说,借助 Let’s Encrypt 颁发的证书可以为我们的网站免费启用 HTTPS(SSL/TLS) 。
Let’s Encrypt免费证书的签发/续签都是脚本自动化的,官方提供了几种证书的申请方式方法,点击此处 快速浏览。
官方推荐使用 Certbot 客户端来签发证书,这种方式可参考文档自行尝试,不做评价。
我这里直接使用第三方客户端 acme.sh 申请,据了解这种方式可能是目前 Let’s Encrypt 免费证书客户端最简单、最智能的 shell 脚本,可以自动发布和续订 Let’s Encrypt 中的免费证书。

二、安装

前提:

在生产证书之前,Let’s Encrypt 需要验证域名是否是属于你的,才能生产证书。Let’s Encrypt` 支持通过 DNS 解析一条 TXT 记录来验证。 我使用的方法也是这种,可以手动去配置也可以使用脚本调用dns服务的api进行自动验证(自动验证是实现自动签发的关键),该脚本acme.sh 提供了API快速设置。

还有一种验证方式 使用 HTTP 验证签发证书,原理是通过在网站指定路径下加入验证文件,外部正常访问即认证通过。
具体参考:https://u.sb/acme-sh-ssl/
acme:https://github.com/acmesh-official/acme.sh

安装:

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

#网络问题国内安装参考:https://github.com/acmesh-official/acme.sh/wiki/Install-in-China

成功安装如下:
免费的SSL证书(Let‘s Encrypt / acme)_第1张图片

DNS 解析验证:

这里使用的是阿里云的dns解析服务,所以需要获取能够调用阿里云dns权限的账号 AccessID 和 AccessKeySecret。

AccessID、KeySecret获取如下:

免费的SSL证书(Let‘s Encrypt / acme)_第2张图片

账号权限确认:

免费的SSL证书(Let‘s Encrypt / acme)_第3张图片

修改配置
vim ~/.bashrc

将 dns解析服务的key填入:
免费的SSL证书(Let‘s Encrypt / acme)_第4张图片

export Ali_Key=""
export Ali_Secret=""

source ~/.bashrc

生产证书

运行如下命令:

acme.sh --issue --dns dns_ali -d example.com -d *.example.com --server letsencrypt

成功后界面上有文件的存放地址:
在这里插入图片描述

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

ll
-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 xxx.net.cer
-rw-r--r-- 1 root root  558 Jul 12 16:27 xxx.net.conf
-rw-r--r-- 1 root root  980 Jul 12 16:26 xxx.net.csr
-rw-r--r-- 1 root root  220 Jul 12 16:26 xxx.net.csr.conf
-rw-r--r-- 1 root root 1675 Jul 12 16:26 xxx.net.key

其中
证书文件 fullchain.cer 
密钥文件 xxx.net.key 

填写SSL证书内容就是这两个
 

完结

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

证书续期

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

在这里插入图片描述

你可能感兴趣的:(Linux,ssl,https,linux)