快捷搜索:  汽车  科技

https证书申请过程(一款免费签发Https证书的工具)

https证书申请过程(一款免费签发Https证书的工具)同时 Let's Encrypt支持通配符证书(是不是被吸引到了)。(Let's Encrypt 只颁发域名验证型(DV)证书,不能颁发组织验证(OV)或扩展验证(EV))为了解决证书问题,分享一款免费签发Https证书的工具:Let's Encrypt。Let's Encrypt是一家免费、开放、自动化的证书颁发机构(CA),为公众的利益而运行(由非盈利组织互联网安全研究小组(ISRG)运营)。Let's Encrypt的主要目标是推进网站的Https进程,截止到目前,已经为1.8亿个网站提供TLS证书。

前言

众所周知,因特网上应用最为广泛的网络传输协议是Http协议,但由于Http协议存在一些不足,比如,在通信过程中使用明文传输,同时未验证通讯双方身份信息,会导致传输数据被第三方窃取。

因此,为了提升安全性,衍生出了Https协议,该协议是在Http基础上增加了证书交换及加密传输等功能,使得Http访问、数据传输尽可能的安全。

https证书申请过程(一款免费签发Https证书的工具)(1)

那么问题来了,因为使用了Https需要证书交换,需要给我们的域名申请证书才能开启Https协议,但是我们不能使用自签证书(因为自签证书系统/浏览器不认),所以需要向第三方机构来申请公认的证书。

目前常用的CA有: 阿里云 , 腾讯云,Godaddy,AWS,Google 等, 但这些服务基本都是收费的, 且申请通配符(*.example.com)证书时价格更高。

为了解决证书问题,分享一款免费签发Https证书的工具:Let's Encrypt。

https证书申请过程(一款免费签发Https证书的工具)(2)

介绍

Let's Encrypt是一家免费、开放、自动化的证书颁发机构(CA),为公众的利益而运行(由非盈利组织互联网安全研究小组(ISRG)运营)。

Let's Encrypt的主要目标是推进网站的Https进程,截止到目前,已经为1.8亿个网站提供TLS证书。

(Let's Encrypt 只颁发域名验证型(DV)证书,不能颁发组织验证(OV)或扩展验证(EV))

同时 Let's Encrypt支持通配符证书(是不是被吸引到了)。

https证书申请过程(一款免费签发Https证书的工具)(3)

Let's Encrypt 官网

如何使用

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

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

https证书申请过程(一款免费签发Https证书的工具)(4)

阿里云DNS控制台界面

我们的服务器为CentOS7

https证书申请过程(一款免费签发Https证书的工具)(5)

CentOS7

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

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)

https证书申请过程(一款免费签发Https证书的工具)(6)

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@example.com -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 协议才能支持通配符证书。

执行后如图:

https证书申请过程(一款免费签发Https证书的工具)(7)

certbot-auto签名过程

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

https证书申请过程(一款免费签发Https证书的工具)(8)

阿里云DNS配置

https证书申请过程(一款免费签发Https证书的工具)(9)

阿里云DNS配置列表

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

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

3. 为Nginx配置启用Https

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

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

https证书申请过程(一款免费签发Https证书的工具)(10)

Nginx: Https配置

然后重启服务即可。

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

https证书申请过程(一款免费签发Https证书的工具)(11)

Let's Encrypt签名后的证书

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

最后:

通过以上步骤我们就能简单地为我们的网站开启Https了,大家快去试试吧。若有什么问题,可以点赞,留言,转发和小编一起交流学习。

参考:

Let's Encrypt 官网:

https://letsencrypt.org/

CertBot 使用文档:

https://certbot.eff.org/docs/

猜您喜欢: