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

Let's Encrypt作为一个公共且免费SSL的项目逐渐被广大用户传播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等组织人员发起,主要的目的也是为了推进网站从HTTP向HTTPS过度的进程,目前已经有越来越多的商家加入和赞助支持。

Let's Encrypt免费SSL证书的出现,也会对传统提供付费SSL证书服务的商家有不小的打击。到目前为止,Let's Encrypt获得IdenTrust交叉签名,这就是说可以应用且支持包括FireFox、Chrome在内的主流浏览器的兼容和支持,虽然目前是公测阶段,但是也有不少的用户在自有网站项目中正式使用起来。

但是它也有相应缺陷,就是一次生成只有90天有效期,接近过期时要重新生成,而且Let's Encrypt官方还准备将时效进一步缩短到60天。当然现在已经有很多人写了全自动生成部署的脚本了,也可以参考使用。

Let's Encrypt上线主要会打击一下廉价的DV证书的市场,比如Rapid SSL、COMODO PositiveSSL和免费的StartSSL、沃通DV证书。对于高档次机构的收费证书,应该还造不成多大的影响,

因为SSL证书的意义并不只是加密流量,更重要的用途是证明网站你的网站是否真实合法,保证不是什么山寨的或是钓鱼的站点,而且同样都是被各大浏览器所信任,在证明效力上也有三六九等。通常越是高档次的证书,或者越贵的认证机构在颁发证书时,对于申请机构的真实性和合法性的审核程序就越是严谨而繁杂,价格也更高,但得到的证明效力也比Let's Encrypt的证书,或者其他廉价的证书都高很多。

与此同时,SSL证书在购买时会附带一份保险,如果因为CA机构的过失而造成客户的经济损失,会有一定数额的赔偿。像知乎用的GeoTrust的通配符OV证书担保额度是125000美元。

Let's Encrypt 的最大贡献是它的 ACME 协议,第一份全自动服务器身份验证协议,以及配套的基础设施和客户端。这是为了解决一直以来 HTTPS TLS X.509 PKI 信任模型,即证书权威(Certificate Authority, CA)模型缺陷的一个起步。在客户端-服务器数据传输中,公私钥加密使得公钥可以明文传输而依然保密数据,但公钥本身是否属于服务器,或公钥与服务器是否同属一个身份,是无法简单验证的。证书权威模型通过引入事先信任的第三方,由第三方去验证这一点,并通过在服务器公钥上签名的方式来认证服务器。第三方的公钥则在事先就约定并离线准备好,以备访问时验证签名之用。这个第三方就称为证书权威,简称CA。相应的,CA验证过的公钥被称为证书。问题是,如果服务器私钥泄露,CA无法离线使对应的证书无效化,只能另外发布无效记录供客户端查询。也就是说,在私钥泄露到CA发布无效记录的窗口内,中间人可以肆意监控服-客之间的传输。如果中间人设法屏蔽了客户端对无效记录的访问,那么直到证书过期,中间人都可以进行监控。而由于当前CA验证和签发证书大多手动,证书有效期往往在一年到三年。Let's Encrypt 签发的证书有效期只有90天,甚至希望缩短到60天。有效期越短,泄密后可供监控的窗口就越短。


以上是对Let's Encrypt的介绍和现状总结,以下说明如何实际部署,基于的web服务器是nginx

下载项目运行,生成证书

#git clone https://github.com/certbot/certbot
#cd certbot
#./certbot-auto certonly --standalone --email admin@example.com -d example.com -d www.example.com -d other.example.net
此处很简单,一步到底,执行certbot-auto命令就是生成证书的过程,参数中email是你的域名联系人邮箱地址,参数d就是你要加签的域名,可以多个

生成过程有提示的话agree和yes即可

参看证书

生成的证书位于/etc/letsencrypt/下

#ls /etc/letsencrypt/
accounts  archive  csr  keys  live  renewal
#cd /etc/letsencrypt/live/example.com && ll
cert.pem  - Apache服务器端证书
chain.pem  - Apache根证书和中继证书
fullchain.pem  - Nginx所需要ssl_certificate文件
privkey.pem - 安全证书KEY文件
这4个文件就是生成的密钥证书文件,但是他们都是文件链接而已,实际的文件位于/etc/letsencrypt/archive/example.com下

#ls /etc/letsencrypt/archive/example.com/
cert1.pem  chain1.pem  fullchain1.pem  privkey1.pem
如果用到docker一类的工具,nginx配置中必须指向真实文件位置,否则会读不到

配置nginx

我们需要在已有的LNMP添加了站点,然后在站点对应的CONF文件设置

server
{
listen 80;
#listen [::]:80;
listen 443 ssl;
ssl on;
ssl_certificate /root/ssl.crt;
ssl_certificate_key /root/ssl.key;
server_name example.com www.example.com;

 

上面有ssl字样的4行配置是必须添加的,对应路径我们要与之前上传的CRT和KEY文件路径对应以及文件名不要搞错。

最后,我们重启LNMP,可以看到SSL证书生效,且HTTPS可以访问站点。

如果我们需要强制使用HTTPS网址访问,那我们就需要取掉 listen 80;脚本。



本文参考:

https://www.zhihu.com/question/36710815?sort=created

http://www.laozuo.org/5571.html

http://blog.csdn.net/helen_shw/article/details/55506587

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
let's encrypt是一个非盈利性质的机构,致力于提供免费SSL证书服务,以促进整个互联网的安全性。在官网上,他们提供了一键式免费申请SSL证书的脚本,使得用户可以快速而简便地获取自己网站的SSL证书。 这个一键式免费申请SSL证书脚本的使用非常简单。首先,用户需要在自己的网站服务器上安装并配置好Certbot工具。Certbot是一个由let's encrypt官方开发的自动化工具,用于申请和更新SSL证书。 在安装和配置好Certbot之后,用户只需要在命令行中输入一条简单的指令,就可以申请自己网站的SSL证书了。具体指令如下: $ sudo certbot certonly --standalone -d <your_domain> 其中,“<your_domain>”替换为用户自己的域名。这条指令的作用是告诉Certbot以standalone模式运行,并申请一个新的证书,该证书将与用户输入的域名关联。 Certbot会自动与let's encrypt的服务器进行通信,验证用户所拥有的域名和服务器的控制权。一旦验证通过,Certbot就会生成一个有效期为90天的SSL证书,并将其保存在用户指定的位置。 用户可以根据自己的需要选择将证书文件保存到哪个目录,以及将其用于哪个Web服务器(例如Apache或Nginx)。 值得一提的是,这个一键式免费申请SSL证书脚本还支持自动续订证书的功能。Certbot会在证书即将过期之前自动执行更新过程,以确保用户的网站能够持续使用最新的SSL证书。 总之,let's encrypt官网提供的一键式免费申请SSL证书脚本极大地简化了证书申请和管理的过程,让网站拥有更安全可靠的加密通信。用户只需几个简单的步骤,就能轻松获得免费SSL证书,提升网站的安全性和可信度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值