2022
我们一起努力

let'sencrypt(letsencrypt泛域名自动续签)

目录:

  • 1、Let's Encrypt 证书申请及配置
  • 2、如何获得Let's Encrypt证书
  • 3、主流浏览器直接信任Let’s Encrypt根证书,宣告他成为顶级CA
  • 4、Let's Encrypt介绍
  • 5、Let'sEncrypt快速颁发及自动续签泛域名证书实践指南
  • 6、如何使用Let's Encrypt永久免费SSL证书

Let's Encrypt 证书申请及配置

Let's Encrypt —— 是一个由非营利性组织 互联网安全研究小组 (ISRG)提供的免费、自动化和开放的证书颁发机构(CA),简单的说,就是为网站提供免费的 SSL/TLS 证书。

Let's Encrypt 生成证书的 工具 很多, certbot 是官方推荐的签发工具,也可以通过在线服务申请,例如:

在线一站式服务管理方便,但可能需要绑定业务,个人用户还是推荐通过工具生成证书。

这里推荐 acme.sh ,它不仅有详细的 中文文档 ,操作更为方便,还支持 Docker 。

以 root 用户为例

安装过程:

自动更新: acme.sh --upgrade --auto-upgrade

手动更新: acme.sh --upgrade

关闭更新: acme.sh --upgrade --auto-upgrade 0

验证域名所有权验证方式:HTTP 和 DNS

acme.sh 会自动生成验证文件,并放到站点的根目录,然后自动完成验证,最后自动删除文件。

Nginx:自动从配置中获取站点的根目录

注:根据中国大陆工信部的规定,所有托管在中国大陆服务器上的网站均需要备案。

—— 站点如未备案,80 端口处于禁用状态,acme.sh 无法使用 HTTP 验证域名所有权。

优势:不需要服务器与公网 ip,只要配置 DNS 解析即可。

不足:必须配置 Automatic DNS API 才可以自动续签。

根据域名服务商,选择对应的 DNS API 。

阿里云: 控制台

创建 Accesskey

DNSPod: 控制台 (注:非腾讯云控制台)

创建 API Token

Wildcard 证书,目前只支持 DNS-01 验证方式。

生成的证书都在 home 目录下: ~/.acme.sh/

使用 --install-cert 命令

重启 Nginx 服务:

定时任务会自动更新

强制续签证书: acme.sh --renew -d mydomain.com --force

如何获得Let's Encrypt证书

第一、安装Let's Encrypt前的准备工作

根据官方的要求,我们在VPS、服务器上部署Let's EncryptSSL证书之前,需要系统支持Python2.7以上版本以及支持GIT工具。这个需要根据我们不同的系统版本进行安装和升级,因为有些服务商提供的版本兼容是完善的,尤其是debian环境兼容性比CentOS好一些。

比如CentOS 6 64位环境不支持GIT,我们还可以参考"Linux CentOS 6 64位系统安装Git工具环境教程"和"9步骤升级CentOS5系统Python版本到2.7"进行安装和升级。最为 简单的就是Debian环境不支持,可以运行"apt-get -y install git"直接安装支持,如果是CentOS直接运行"yum -y install git-core"支持。这个具体遇到问题在讨论和搜索解决方案,因为每个环境、商家发行版都可能不同。在这篇文章中,老左采用的是debian 7 环境。

第二、快速获取Let's EncryptSSL证书

在之前的博文中老左也分享过几篇关于SSL部署的过程,我自己也搞的晕乎晕乎的,获取证书和布局还是比较复杂的,Let's Encrypt肯定是考虑到推广HTTPS的普及型会让用户简单的获取和部署SSL证书,所以可以采用下面简单的一键部署获取证书。

然后执行上面的脚本,我们需要根据自己的实际站点情况将域名更换成自己需要部署的。

看到这个界面,直接Agree回车。

然后看到这个界面表示部署成功。目前根据大家的反馈以及老左的测试,如果域名是用的国内DNS,包括第三那方DNSPOD等,都可能获取不到域名信息。

这里我们可以看到有"The server could not connect to the client to verify the domain"的错误提示信息,包括也有其他提示错误,"The server experienced an internal error :: Error creating new registration"我们在邮局的时候不要用国内邮局。可以登录360进行查询了解更多的相关知识,也可以做

主流浏览器直接信任Let’s Encrypt根证书,宣告他成为顶级CA

8月6号,Let’s Encrypt 官方博客发表了一篇文章 Let's Encrypt Root Trusted By All Major Root Programs ,其中关键信息引用如下:

意思就是本月底,所有的微软产线(比如 Edge)也将直接信任 Let’s Encrypt 的根证书(ISRG Root X1),从而世界上所有的主流产品都直接支持其根证书了,那么这意味着什么?什么是直接信任?对使用 Let’s Encrypt 的证书的人有何影响?且听我慢慢道来。

这一消息表示:

也许你听的晕晕乎乎的,为了解明白,我们必须理解证书链的概念。

证书链是一个信任链,关系见下图:

以 Let’s Encrypt 签发的证书为例,申请者申请的证书可以称为服务器证书,运行 openssl 查看证书命令,关键信息如下:

这表示服务器证书是 *.simplehttps.com,它被中间证书 Let's Encrypt Authority X3 进行数字签名,也就是说服务器证书被 Authority X3 中间证书信任。

该中间证书就是 Let's Encrypt CA 机构的,用于签发服务器证书,需要说明的是中间证书可能有多张,迭代签名。

那么中间证书被谁签名了?运行下列命令:

中间证书是被 DST Root CA X3 根证书(IdenTrust CA 机构的根证书)签名的,同学们可能很奇怪了,为啥 Let's Encrypt 不用自己的根证书签名其中间证书啊?这是一个好问题。

根本原因就是 Let's Encrypt 作为一个新兴 CA 机构,历史并不悠久,大部分浏览器不可能直接信任其根证书,不信任就无法构建信任基础,怎么办?Let's Encrypt 为了快速投入运营,使用 IdenTrust CA 机构的根证书(被主流产品直接信任,比如 Chrome 可信任根证书列表包含该根证书)对其中间证书进行 交叉认证 ,从而主流产品就能信任 Let's Encrypt 服务器证书了,最终信任链链条: 服务器证书Let's Encrypt Authority X3 中间证书-DST Root CA X3 根证书 。

同学们如果也使用 Let's Encrypt 证书,可以看一下证书链,打开 Chrome 开发者工具就能知晓,如图:

本质上,Let's Encrypt 有两条证书链(早就存在了)如下图:

绿色线条就是目前采用的证书链,如果主流浏览器都信任了 Let's Encrypt 根证书(ISRG Root X1),那么就可以采用红色线条标示的证书链了。也就是信任链链条: 服务器证书Let's Encrypt Authority X3 中间证书-ISRG Root X1 根证书 。

经过我的配置,我的网站证书链如下图:

同学们可能会问,这是如何做到的?别着急。

本质上,Let's Encrypt 中间证书 Authority X3 有两个证书,分别是:

他们都可以对 Let's Encrypt 服务器证书进行签名(签名用的私钥是一样的),这是关键,这两个证书分别被 ISRG Root X1 和 DST Root CA X3 签名。

聪明的同学可能想到了,在申请 Let's Encrypt 证书的时候,Let's Encrypt 目前使用 Let’s Encrypt Authority X3 (IdenTrust cross-signed) 签名,申请者获取到证书后,配置证书链(服务器证书+中间证书)后提供 HTTPS 服务。浏览器校验证书,一看中间证书是 Let’s Encrypt Authority X3 (IdenTrust cross-signed) 签名,最终找到 IdenTrust 的根证书完成签名验证。

那今天博客所说的内容表示,在申请 Let's Encrypt 证书的时候,Let's Encrypt 可以使用 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 签名,申请者获取到证书后,配置证书链(服务器证书+中间证书)后提供 HTTPS 服务。浏览器校验证书,一看中间证书是 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 签名,最终找到 Let's Encrypt ISRG Root X1 根证书完成签名验证。

可实际上, 目前 你申请证书的时候,Let's Encrypt 仍然使用 IdenTrust cross-signed 中间证书签名服务器证书,原因何在,主流产品(比如 Chrome)虽然已经直接信任其根证书了,但这些产品有很多旧版本存在,如果不更新,那么这些版本仍然不信任 Let’s Encrypt 根证书,Let’s Encrypt 预估 5 年以后,这些旧版本将不复存在,那个时候 Let’s Encrypt 就可以大胆用 Let’s Encrypt Authority X3 (Signed by ISRG Root X1) 中间证书签发服务器证书了。

难倒我们了吗?是否可以手动让你的网站使用新的证书链呢?答案是可以(如果不考虑旧产品线不信任 Let’s Encrypt ISRG Root X1 根证书的问题)。

上面讲到,服务器证书可以任意使用下面的中间证书签名:

任意的关键就是,这两个证书的签名私钥是一样的,我们是否可以自行配置证书链呢(红色线条)?可以:

然后重新启动你的服务器,使用 Chrome 浏览器开发者工具观察网站证书链,是不是结果如下图:

Let's Encrypt介绍

【现状】Let’s Encrypt 是一家免费、开放、自动化的证书颁发机构(CA),为公众的利益而运行。它是一项由 Internet Security Research Group(ISRG) 提供的服务。我们以尽可能对用户友好的方式免费提供为网站启用 HTTPS(SSL/TLS)所需的数字证书。这是因为我们想要创建一个更安全,更尊重隐私的 Web 环境。

【为什么要做】任何拥有域名的人都可以使用 Let’s Encrypt 免费获取受信的证书,

CA是Certificate Authority的缩写,也叫“证书授权中心”,就是负责管理和签发证书的第三方机构。

借用网上一位同学的例子:假如你供职于X公司,老板让你去拜访A公司老总谈点业务,此时你直接去可能前台MM给你挡住了,因为没人认识你,那怎么办?你发现C公司跟A公司业务往来密切,你对C公司也熟悉,你就去找C公司的老板给你写了封介绍信并且盖上C公司章,然后你拿着介绍信去A公司,把介绍信给前台MM一看,前台MM一看C公司的章就信任你了,就让你去拜访了。证书就是介绍信,通过盖章的方式来解决信任问题。

简而言之: 发信人对内容进行hash 计算,得到内容摘要(digest)– 发信人对摘要使用私钥加密,生成”数字签名”(signature) – 内容附上数字签名,一起发送。

身份验证过程:

内容 :含有公钥,及公钥拥有者的身份。

作用 :1. 证明证书中的公钥 就是信件发送者的的公钥 ; 2. 用通过认证的公钥解密内容

特点:1. 第三方权威机构颁发;2. 具有有效期

数字证书使用 :

由证书认证机构(CA)对证书申请者真实身份验证之后,用CA的根证书对申请人的一些基本信息以及申请人的公钥进行签名后形成的一个数字文件,生成”数字证书”(Digital Certificate);

A 在发送信件给B的时候,同时附上签名和证书;

B 用CA的公钥解开数字证书,就可以拿到A 的真实公钥了,然后就能证明”数字签名”的是否属A。

前文说到,用数字签名的方式 发送信件也是有一定风险的。比如 公钥被替换,无法知晓公钥的来源或公钥对应的私钥的持有者身份 。于是,数字证书便有了它的作用。

Let’s Encrypt 是一个证书颁发机构(CA)。要从 Let’s Encrypt 获取您网站域名的证书,您必须证明您对域名的实际控制权。您可以在您的 Web 主机上运行使用 ACME 协议 的软件来获取 Let’s Encrypt 证书。

RAS一种非对称加密算法,公钥(PK)加密,私钥(SK)解密,虽然SK是由PK决定的,但是大数分解计算量太大,无法穷举破解,所以被认可。但是随着量子计算的产生,对其安全性将构成威胁, RAS百科

在说明证书制作过程前,先说明制作证书时,用到的几类文件的作用

.key 文件:私钥

.csr 文件:证书签名请求文件,含有公钥信息,certificate signing request的缩

.crt 文件:用.csr 生成的证书文件,certificate的缩写,这就是数字证书

生成自签名根证书。就是模仿证书权威机构的作用,给用户提供一个权威机构的根证书。在真实场景中,根证书是CA认证中心给自己颁发的证书,是信任链的起始点。任何安装CA根证书的服务器都意味着对这个CA认证中心是信任的。是信任链的起始点。任何安装CA根证书的服务器都意味着对这个CA认证中心是信任的。

生成CA 的私钥 openssl genrsa -out ca.key 2048

生成CA 证书请求文件 openssl req -new -key ca.key -out ca.csr

生成CA证书 openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Let'sEncrypt快速颁发及自动续签泛域名证书实践指南

[TOC]

描述: Let's Encrypt 是免费、开放和自动化的证书颁发机构由Linux基金会( Linux Foundation )进行日常管理维护,它为1.8亿个网站提供TLS证书的非盈利性证书颁发机构, 通过它我们可以免费申请网站证书,并您的网站上启用 HTTPS (SSL/TLS) 提供支持。

前置需求:

参考来源

Let's Encrypt 网站:

ACME 协议客户端:

acme.sh WIKI:

certbot Github:

原文地址:

描述: 此处我们采用 acmesh-official 提供的 acme.sh 项目来快速搭建证书自动颁发、续签证书,其使用简单、强大且非常易于使用,它纯粹用 Shell(Unix shell)语言编写的 ACME 协议客户端,安装方式主要有 二进制文件 或者是 acme.sh💕码头工人 ( )。

温馨提示: 签发的证书有效期为60天,我们可以设置cron 作业以检查和更新证书,通常证书将每60天自动更新一次。

快速安装:

安装参考地址:

至此,您现在可以发布证书了。

Q: 什么是通配符证书?

A: 在没有出现通配符证书之前,Let’s Encrypt 支持两种单域名证书、SAN证书。

申请通配符证书流程

步骤 01.如果您的 DNS 提供商支持 API 访问,我们可以使用该 API 自动颁发证书,目前 acme.sh 支持大多数 dns 提供者( ),如果您的 dns 提供商不支持任何 api 访问,您只能手动添加 txt 记录。

步骤 02.此处我已经将 weiyigeek.top域名DNS解析商设置为 Cloudflare (免费),其DNS提供上支持API访问, 在使用 acme.sh 实现自动签发证书前,我们需要再Cloudflare网站上获取用于访问 Cloudflare API 的密钥,首先 点击我的个人资料 - API 令牌 。

步骤 03.设置 acme.sh 用于访问 Cloudflare 的 dnsapi 的相关环境变量。

步骤 04.执行如下命令,可以实现自动颁发通配符ECDSA格式证书,Let's Encrypt 支持颁发 EC 格式证书,

步骤 05.利用openssl查看颁发的CA及其证书。

步骤 06.使用签发的证书,ingress为指定主机名称设置tls, 然后通过浏览器访问 站点,验证tls配置是否正常。

步骤 07.于此同时我们还可,修改 Nginx 配置文件启用 ssl,记得修改完成后需要重启下 Nginx。

温馨提示: Nginx 的配置 ssl_certificate 和 ssl_trusted_certificate 使用 fullchain.cer ,而非 domain.cer ,否则 SSL Labs 的测试会报 Chain issues Incomplete 错误

步骤 08.创建 cron 作业以检查和更新证书,添加force参数60天后强制更新。

Q: 将默认 CA 更改为 ZeroSSL?

A: 通常情况下 acme.sh 使用letsencrypt作为默认CA, 当前可以将默认CA更改为 ZeroSSL( ),但实际上并不建议这样做,因为,Let's Encrypt 可以颁发 EC 证书,而 ZeroSSL.com 则不支持颁发。

Q: 如何颁发包含多个域的单个证书,每个域使用不同的验证方法 多域、SAN模式、Hybrid模式 。

Q: 如何生成pkcs12(pfx) 格式证书?

Q: 如何从从现有 CSR 颁发证书?

Q: 如何进行证书签发通知?

A: acme.sh 可以在 cronjob 中发送通知, 通知可以是电子邮件或任何其他支持的方式,例如请求 webhook 等, 参考地址:

Q: acme.sh 除了支持Cloudflare还支持那些DNSAPI供应商

描述: acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成。

安装部署RSA、ECC双证书(使用DNSPod API)

书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注,转个发】(人间五大情),这将对我的肯定,谢谢支持!(๑′ᴗ‵๑) ❤

如何使用Let's Encrypt永久免费SSL证书

直接去申请就可以了。这里需要注意的是免费SSL证书并不是适合所有的网站,和付费SSL证书还是有很大区别的,具体区别如下:

1、验证类型

免费SSL证书只有域名验证性型(DV SSL证书),而付费SSL证书有域名验证型(DV SSL证书)、企业验证型(OV SSL证书)、组织验证型(EV SSL证书)。

2、使用限制

免费SSL证书在使用时还有诸多限制,比如:免费SSL证书只能绑定单个域名、不支持通配符域名、多域名等。此时相关服务也会大打折扣,大多数免费的SSL证书都由用户自行安装,无法提供后期服务和技术支持,在遇到SSL证书安装问题时,也无法得到解决。

而提供付费SSL证书的商家,一般会提供申请购买到安装的一系列访问,后续出现问题,还找提供商寻求解决。

3、使用时间

免费SSL证书有效期过短,每三个月或者一个月就要更新一次,到期后还要自己申请,很多用户很容易就会忘记续期。

而付费SSL证书的使用年限一般是2年,不用时时刻刻担心证书过期的问题。

4、选择多样性

目前提供免费SSL证书的Lets Encrypt、Comodo等,而付费SSL证书选择性就大得多,Comodo、GeoTrust、Symantec、RapidSSL等知名CA机构。

总的来说,免费的SSL证书,适用于个人博客,作为一个临时的解决方案。企业或流量较高的个人网站还是选择付费的SSL证书比较好。

赞(0)
文章名称:《let'sencrypt(letsencrypt泛域名自动续签)》
文章链接:https://www.fzvps.com/146758.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!