2.软文推荐
3.软文推荐
目录: 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根证书,宣告他成为顶级CA8月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

立即
返回
1
??现如今,基本每一个公司或者企业都会建站,为了能够缩短建站进程,优化网站效率,选择一个合适的主机非常关键。那么建站用什么主机...