使用certbot获取 Let‘s Encrypt CA证书

费话不说直接开撸


Let's Encrypt 官网

 

1. 首先我们应该拥有一个域名, 而且拥有我们自己的服务器

假设我们在阿里云注册的域名是 example.com,登录到云解析DNS控制台

我们的服务器为ubuntu

然后我们就可以进行第二步啦

2. 证书签名

这个步骤就开始申请证书了。

因为Let's Encrypt 支持通配符证书(*.example.com) ,所以这里我们就使用Certbot的 ACME 方式申请通配符证书。

当然,Let's Encrypt 支持多域名签名,这样我们就可以把 *.example.com 和 example.com一起签名。

Let's Encrypt 支持3种域名认证方式,以下列出常用的2种:1. 在 example.com 下配置DNS记录2. 在 http://example.com/的已知URI下放置一个Http资源但签通配符域名(*.example.com)只支持DNS记录认证

Web URI资源认证域名流程图:

(DNS认证与此类似,只是WebServer Admin Software换为了DNS Server,配置项换成了DNS Record)

Web URI资源认证域名流程图

签名步骤:

a. 首先下载certbot-auto及Python(CertBot依赖Python 2.7 or 3.5以上)

安装文档: https://certbot.eff.org/docs/install.html

$ wget https://dl.eff.org/certbot-auto$ chmod +x certbot-auto

b. 执行certbot-auto

(此处执行需要root权限)

./certbot-auto certonly --no-bootstrap --email [email protected] -d *.example.com -d example.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

其中:--preferred-challenges:域名所有权验证类型 ,值为http,dns或tls-sni ,这里我们使用dns--email:用于注册的邮箱-d:用于签名的域名,可配置多个-d 项,或将多个域名按","(逗号)分割--manual :表示手动安装插件--server:ACME V2版本协议目录, 为了实现通配符证书,Let’s Encrypt 对 ACME 协议的实现进行了升级,只有 v2 协议才能支持通配符证书。

执行后如图:

certbot-auto签名过程

在出现 Please deploy a DNS TXT record under the name 提示时,按要求在阿里云DNS 管理控制台中配置 DNS TXT记录:

阿里云DNS配置

阿里云DNS配置列表

在等待10分钟后,或在服务器上使用dig命令检查域名解析是否生效,解析生效后,按回车继续进行下一个域名的配置。

在2次配置结束后,我们即可看到证书签名成功。

3. 为Nginx配置启用Https

这里我们使用Nginx 配置域名证书来开启Https。配置如下:

(注意运行权限需为root,其中的example.com为假设域名,需替换为真实的域名)

Nginx: Https配置

然后重启服务即可。

4. 以上步骤操作完成后,证书就配置成功了,让我们看下成果:

Let's Encrypt签名后的证书

注意 Let's Encrypt CA颁发短期证书(90天)。确保在3个月内至少续订一次证书。当然, 我们可以做定时任务脚本自动完成证书续签。

猜你喜欢

转载自blog.csdn.net/wepe12/article/details/108674526