费话不说直接开撸
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个月内至少续订一次证书。当然, 我们可以做定时任务脚本自动完成证书续签。