转自: https://linux.cn/article-6565-1.htmlhtml
根据 Let's Encrypt 官方博客消息,Let's Encrypt 服务将在下周(11 月 16 日)正式对外开放。linux
Let's Encrypt 项目是由互联网安全研究小组(ISRG,Internet Security Research Group)主导并开发的一个新型数字证书认证机构(CA,Certificate Authority)。该项目旨在开发一个自由且开放的自动化 CA 套件,并向公众提供相关的证书免费签发服务以下降安全通信的财务、技术和教育成本。在过去的一年中,互联网安全研究小组拟定了ACME 协议草案,并首次实现了使用该协议的应用套件:服务端 Boulder 和客户端 letsencrypt。git
至于为何 Let's Encrypt 让咱们如此激动,以及 HTTPS 协议如何保护咱们的通信请参考浅谈 HTTPS 和 SSL/TLS 协议的背景与基础。github
Let's Encrypt算法
(题图来自:muylinux.com)docker
Let's Encrypt 的诞生离不开 ACME(自动证书管理环境(Automated Certificate Management Environment))协议的拟定。浏览器
说到 ACME 协议,咱们不得不提一下传统 CA 的认证方式。Let's Encrypt 服务所签发的证书为域名认证证书(DV,Domain-validated Certificate),签发这类证书须要域名全部者完成如下至少一种挑战(Challenge)以证实本身对域名的全部权:安全
admin@
、postmaster@
开头的邮箱等)的控制权;不难发现,其中最容易实现自动化的一种操做必然为最后一条,ACME 协议中的 Simple HTTP 认证便是用一种相似的方法对从未签发过任何证书的域名进行认证。该协议要求在访问 http://域名/.well-known/acme-challenge/指定字符串
时返回特定的字符串。服务器
然而实现该协议的客户端 letsencrypt 作了更多——它不只能够经过 ACME 协议配合服务端 Boulder 的域名进行独立(standalone)的认证工做,同时还能够自动配置常见的服务器软件(目前支持 Nginx 和 Apache)以完成认证。app
对于大多数网站管理员来说,想要对本身的 Web 服务器进行加密须要一笔不小的支出进行证书签发而且难以配置。根据早些年 SSL Labs 公布的 2010 年互联网 SSL 调查报告(PDF) 指出超过半数的 Web 服务器没能正确使用 Web 服务器证书,主要的问题有证书不被浏览器信任、证书和域名不匹配、证书过时、证书信任链没有正确配置、使用已知有缺陷的协议和算法等。并且证书过时后的续签和泄漏后的吊销仍需进行繁琐的人工操做。
幸 运的是 Let's Encrypt 免费证书签发服务在经历了漫长的开发和测试以后终于来临,在 Let's Encrypt 官方 CA 被普遍信任以前,IdenTrust 的根证书对 Let's Encrypt 的二级 CA 进行了交叉签名使得大部分浏览器已经信任 Let's Encrypt 签发的证书。
因为当前 Let's Encrypt 官方的证书签发服务还未公开,你只能尝试开发版本。这个版本会签发一个 CA 标识为 happy hacker fake CA
的测试证书,注意这个证书不受信任。
要获取开发版本请直接:
$ git clone https://github.com/letsencrypt/letsencrypt
如下的使用方法摘自 Let's Encrypt 官方网站。
letsencrypt
工具能够协助你处理证书请求和验证工做。
自动配置 Web 服务器
下面的操做将会自动帮你将新证书配置到 Nginx 和 Apache 中。
$ letsencrypt run
独立签发证书
下面的操做将会将新证书置于当前目录下。
$ letsencrypt -d example.com auth
默认状况下 letsencrypt
工具将协助你跟踪当前证书的有效期限并在须要时自动帮你续签。若是须要手动续签,执行下面的操做。
$ letsencrypt renew --cert-path example-cert.pem
列出当前托管的证书菜单以吊销。
$ letsencrypt revoke
你也能够吊销某一个证书或者属于某个私钥的全部证书。
$ letsencrypt revoke --cert-path example-cert.pem
$ letsencrypt revoke --key-path example-key.pem
若是你不想让 letsencrypt 自动配置你的 Web 服务器的话,使用 Docker 跑一份独立的版本将是一个不错的选择。你所要作的只是在装有 Docker 的系统中执行:
$ sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \
-v "/etc/letsencrypt:/etc/letsencrypt" \
-v "/var/lib/letsencrypt:/var/lib/letsencrypt" \
quay.io/letsencrypt/letsencrypt:latest auth
你就能够快速的为本身的 Web 服务器签发一个免费并且受信任的 DV 证书啦!
对于 Let's Encrypt 的介绍就到这里,让咱们一块儿目击这场互联网的安全革命吧。
原文:https://github.com/vizv做者: vizv
原创:Linux中国 https://linux.cn/article-6565-1.html