SSL/TLS 加密新纪元 - Let's Encrypt

转载 2015年11月11日 15:24:32

转自: https://linux.cn/article-6565-1.html


SSL/TLS 加密新纪元 - Let's Encrypt


根据 Let's Encrypt 官方博客消息,Let's Encrypt 服务将在下周(11 月 16 日)正式对外开放。

Let's Encrypt 项目是由互联网安全研究小组(ISRG,Internet Security Research Group)主导并开发的一个新型数字证书认证机构(CA,Certificate Authority)。该项目旨在开发一个自由且开放的自动化 CA 套件,并向公众提供相关的证书免费签发服务以降低安全通讯的财务、技术和教育成本。在过去的一年中,互联网安全研究小组拟定了 ACME 协议草案,并首次实现了使用该协议的应用套件:服务端 Boulder 和客户端 letsencrypt

至于为什么 Let's Encrypt 让我们如此激动,以及 HTTPS 协议如何保护我们的通讯请参考浅谈 HTTPS 和 SSL/TLS 协议的背景与基础

Let's Encrypt

Let's Encrypt

(题图来自:muylinux.com)

ACME 协议

Let's Encrypt 的诞生离不开 ACME(自动证书管理环境(Automated Certificate Management Environment))协议的拟定。

说到 ACME 协议,我们不得不提一下传统 CA 的认证方式。Let's Encrypt 服务所签发的证书为域名认证证书(DV,Domain-validated Certificate),签发这类证书需要域名所有者完成以下至少一种挑战(Challenge)以证明自己对域名的所有权:

  • 验证申请人对域名的 Whois 信息中邮箱的控制权;
  • 验证申请人对域名的常见管理员邮箱(如以 admin@postmaster@ 开头的邮箱等)的控制权;
  • 在 DNS 的 TXT 记录中发布一条 CA 提供的字符串;
  • 在包含域名的网址中特定路径发布一条 CA 提供的字符串。

不难发现,其中最容易实现自动化的一种操作必然为最后一条,ACME 协议中的 Simple HTTP 认证即是用一种类似的方法对从未签发过任何证书的域名进行认证。该协议要求在访问 http://域名/.well-known/acme-challenge/指定字符串 时返回特定的字符串。

然而实现该协议的客户端 letsencrypt 做了更多——它不仅可以通过 ACME 协议配合服务端 Boulder 的域名进行独立(standalone)的认证工作,同时还可以自动配置常见的服务器软件(目前支持 Nginx 和 Apache)以完成认证。

Let's Encrypt 免费证书签发服务

对于大多数网站管理员来讲,想要对自己的 Web 服务器进行加密需要一笔不小的支出进行证书签发并且难以配置。根据早些年 SSL Labs 公布的 2010 年互联网 SSL 调查报告(PDF) 指出超过半数的 Web 服务器没能正确使用 Web 服务器证书,主要的问题有证书不被浏览器信任、证书和域名不匹配、证书过期、证书信任链没有正确配置、使用已知有缺陷的协议和算法等。而且证书过期后的续签和泄漏后的吊销仍需进行繁琐的人工操作。

幸运的是 Let's Encrypt 免费证书签发服务在经历了漫长的开发和测试之后终于来临,在 Let's Encrypt 官方 CA 被广泛信任之前,IdenTrust 的根证书对 Let's Encrypt 的二级 CA 进行了交叉签名使得大部分浏览器已经信任 Let's Encrypt 签发的证书。

使用 letsencrypt

由于当前 Let's Encrypt 官方的证书签发服务还未公开,你只能尝试开发版本。这个版本会签发一个 CA 标识为 happy hacker fake CA 的测试证书,注意这个证书不受信任。

要获取开发版本请直接:

  1. $ git clone https://github.com/letsencrypt/letsencrypt

以下的使用方法摘自 Let's Encrypt 官方网站。

签发证书

letsencrypt 工具可以协助你处理证书请求和验证工作。

自动配置 Web 服务器

下面的操作将会自动帮你将新证书配置到 Nginx 和 Apache 中。

  1. $ letsencrypt run

独立签发证书

下面的操作将会将新证书置于当前目录下。

  1. $ letsencrypt -d example.com auth

续签证书

默认情况下 letsencrypt 工具将协助你跟踪当前证书的有效期限并在需要时自动帮你续签。如果需要手动续签,执行下面的操作。

  1. $ letsencrypt renew --cert-path example-cert.pem

吊销证书

列出当前托管的证书菜单以吊销。

  1. $ letsencrypt revoke

你也可以吊销某一个证书或者属于某个私钥的所有证书。

  1. $ letsencrypt revoke --cert-path example-cert.pem
  1. $ letsencrypt revoke --key-path example-key.pem

Docker 化 letsencrypt

如果你不想让 letsencrypt 自动配置你的 Web 服务器的话,使用 Docker 跑一份独立的版本将是一个不错的选择。你所要做的只是在装有 Docker 的系统中执行:

  1. $ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
  2. -v "/etc/letsencrypt:/etc/letsencrypt" \
  3. -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
  4. quay.io/letsencrypt/letsencrypt:latest auth

你就可以快速的为自己的 Web 服务器签发一个免费而且受信任的 DV 证书啦!

Let's Encrypt 的注意事项

  • Let's Encrypt 当前发行的 DV 证书仅能验证域名的所有权,并不能验证其所有者身份;
  • Let's Encrypt 不像其他 CA 那样对安全事故有保险赔付;
  • Let's Encrypt 目前不提供 Wildcard 证书;
  • Let's Encrypt 的有效时间仅为 90 天,逾期需要续签(可自动续签)。

对于 Let's Encrypt 的介绍就到这里,让我们一起目睹这场互联网的安全革命吧。

原文:https://github.com/vizv 作者: vizv
原创:Linux中国  https://linux.cn/article-6565-1.html

免费SSL证书Let's Encrypt(certbot)安装使用教程

https://www.vpser.net/build/letsencrypt-certbot.html Let's Encrypt是很火的一个免费SSL证书发行项目,自动化发行...

实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题

本文转自: http://www.laozuo.org/7676.html | 老左博客 Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla...

免费ssl证书:Let's Encrypt

两种方式 官方:letsencrypt-autocertbot-auto certbot 1、服务器centOS6.5,需要安装epel。 yum install epel-release2、安装...

SSL安全证书Let's Encrypt安装使用教程(启用https)

​ HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。h...

免费SSL安全证书Let's Encrypt安装使用教程(附Nginx/Apache配置)

https://www.vpser.net/build/letsencrypt-free-ssl.html Let's Encrypt是最近很火的一个免费SSL证书发...

nginx配置Let's Encrypt免费SSL证书

安装certbot#安装EPEL软件源数字7代表版本centos7 如果是6就改成6 5则改成5 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel...
  • kwinH
  • kwinH
  • 2017年01月16日 16:07
  • 308

Centos中使用Let's Encrypt配置SSL证书

Let’s Encrypt 介绍Let’s Encrypt 是一个免费、开放,自动化的证书颁发机构,由 ISRG(Internet Security Research Group)运作。ISRG 是一...
  • bjnihao
  • bjnihao
  • 2016年10月21日 12:54
  • 273

如何通过抓包查看客户端https连接中ssl/tls加密所采用的秘钥位数

在https传输的过程中,我们底层的加密传输协议是ssl/tls.这里所使用的加密算法的秘钥位数(也就是服务器所使用的https证书的位数)可能是1024/2048或者更高,目前1024位的证书已经被...

HTTPS加密协议详解(四):TLS/SSL握手过程

原文地址:http://www.oschina.net/question/111042_14578   个人觉得这篇文章对ssl讲得非常透彻。 1、握手与密钥协商过程 基于RSA握手和密钥交换的...
  • chenxu6
  • chenxu6
  • 2016年11月22日 19:56
  • 1417
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SSL/TLS 加密新纪元 - Let's Encrypt
举报原因:
原因补充:

(最多只允许输入30个字)