1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > 域名 > 正文

域名

SSL证书申请流程和如何申请Let’sEncrypt免费证书

1987web2023-09-25域名213
Let’sEncrypt是由Mozilla发起,诸多CDN厂商,浏览器厂商共同支持的免费SSL项目,相对于沃什么通免费SSL什么的绝对靠谱得多。

Let’s Encrypt 是由 Mozilla 发起,诸多 CDN 厂商,浏览器厂商共同支持的免费 SSL 项目,相对于沃什么通免费 SSL 什么的绝对靠谱得多。

其次 Let’s Encrypt 使用一个命令行工具certbot来自动完成 CSR 生成,发起申请,DCV (Domain Control Validation) 验证,获取证书的工作,基本上一行命令就搞定。

以下简要介绍一下证书申请中的一些概念,以及如何申请 Let’s Encrypt 的免费证书。

SSL 证书申请流程

SSL 证书申请流程一般分为以下几步

  1. 生成私钥和CSR

在整套证书基础设施的所有操作中,私钥的明文都是不能经过网络传输的。所以,第一步用户生成一个证书,私钥保存在自己的电脑上,然后生成 证书签名请求 (CSR, Certificate Signing Request)发送给 CA机构。

生成证书的时候,必须在 通用名 (CN, Common Name)一栏填入待申请域名,这也保证了不同域名的 SSL证书 不能通用。

证书申请的真正含义是,请求一个 CA机构 对你的 CSR 进行签名,CA 机构 签名之后,你生成的这个证书才会受到各大浏览器的信任,否则只能当做自签名的证书,在自己的设备上手动配置信任。

2.发送给 CA

这一步很好理解,就是把上一步生成的 CSR 以各种方式发送给 CA机构,请求签名。

各个 CA机构 不同等级的证书价格也不一样,但在用户看来,证书其实只有两个级别,带 EV认证 和 不带EV认证,也就是带不带绿标,这一点在下面提到。

3.CA机构 验证申请人身份

CA机构 绝对不会来者不拒的,这样随便一个人就可以申请到别人域名的证书了,这样 SSL加密 就没有意义了。

因此 CA机构 在用户购买证书,提交 CSR 之后,会进行域名控制验证 (DCV, Domain Control Validation),验证申请人是否拥有域名控制权。

CA机构 验证申请人身份一般有几个方法:

  • Email 验证,CA机构 向待申请域名的某些固定邮箱 (诸如 postmaster@example.com, webmaster@example.com) 发送验证链接,用户点击链接即可进行验证。
  • DNS 验证,CA机构 要求申请人在待申请域名的某个随机子域名上添加一条指定的TXT记录,如果申请人添加成功,即通过验证。
  • Web 验证,CA机构 要求申请人在待申请域名的 HTTP 服务下,放入一个特定的文件,如果 CA机构 能够访问到这个文件,并且内容和要求的一致,即通过验证。也有一些机构会要求在页面 中加入特定的信息,但是基本的概念是一致的。

如果是带 EV认证 的证书,CA机构 会要求申请人出具法律证明文件,甚至是现场勘验。这也是 EV证书 一般都是天价的原因。

4.发送证书

CA机构 验证完成后,会对用户 CSR 进行签名,并发回申请人,这样申请人就拿到一个受浏览器信任的证书了。

如何申请 Let’s Encrypt 证书

知道域名申请流程之后,就明白 Let’s Encrypt 是如何使用一行命令完整证书申请流程的了。

首先打开https://certbot.eff.org/,按照提示安装 cerbot, 这是 Let’s Encrypt 官方提供的命令行工具。

在典型环境下,假设用户拥有Example Domain这个域名,用户将其指向某台服务器,服务器的反向代理 Nginx 识别Example Domain主机名,然后提供/var/html/www的静态内容。

在这个典型环境下,certbot 的工作流程非常简单,只需一行代码:

certbot certonly --webroot -w /var/html/www -d www.example.com

此命令会执行以下工作:

  • certbot调用openssl生成CN=Example Domain的证书,生成 CSR,发送给 Let’s Encrypt CA。
  • Let’s Encrypt CA 告知certbot进行 Web DCV,certbot把 Let’s Encrypt CA 要求的文件放入/var/html/www中,假设为abcdeftas.html
  • Let’s Encrypt CA 访问http://www.example.com/abcdeftas.html,如果访问成功且内容和要求的一致,就证明申请人的确拥有域名的控制权,Web DCV 验证成功。
  • Let’s Encrypt CA 签名 CSR 并下发证书。

在实际工作中,Nginx 可能需要负担反向代理的工作,Lets Encrypt 的 Web DCV 只会占用网站 .well-known 路径。正确配置 Nginx,比如为 .well-known 路径单独设置静态内容,就可以在保证网站不间断运行的情况下,完成证书的申请工作。

博客链接:SSL 证书申请流程 和 如何申请 Let’s Encrypt 免费证书