如何使用Let's Encrypt永久免费SSL证书
来源:互联网 发布:韩国网络电视机顶盒 编辑:程序博客网 时间:2024/05/17 06:08
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 && llcert.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
- 如何使用Let's Encrypt永久免费SSL证书
- let's Encrypt永久免费证书SSL配置HTTPS
- 免费SSL证书Let's Encrypt(certbot)安装使用教程
- 免费ssl证书:Let's Encrypt
- Let's Encrypt免费SSL证书
- 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
- 申请Let's Encrypt永久免费SSL证书教程及常见问题
- Let's Encrypt永久免费SSL证书过程教程及常见问题
- 实战申请Let’s Encrypt永久免费SSL证书过程教程及常见问题
- windows申请免费SSL证书-Let's Encrypt
- nginx配置Let's Encrypt免费SSL证书
- windows申请免费SSL证书-Let's Encrypt
- CentOS Nginx 安装Let’s Encrypt 免费ssl证书
- Let’s Encrypt 免费SSL证书自动续期的方法
- Apache配置Let’s Encrypt免费SSL证书
- Let’s Encrypt的免费SSL证书(续签)
- 免费SSL安全证书Let's Encrypt安装使用教程(附Nginx/Apache配置)
- linux CentOS7 安装使用 Let’ s Encrypt 免费SSL证书完整过程
- UINavigationBar&UINavigationItem&UIBarButtonItem&UITabBar&UITabBarButton&UITabBarItem区别
- 判断网络连接(是否连网、是否是手机流量或WIfi连接)
- Centos6.5安装GCC遇到的问题及解决
- hdu 1030 Delta-wave
- linux chmod
- 如何使用Let's Encrypt永久免费SSL证书
- 北大 算法 2.3 递归 棋盘分割
- android基础 -实现xml的序列化
- 第十八周:110. Balanced Binary Tree
- 下载文件直接通过流下载,并修改下载名 and 解决乱码问题
- Android开发之--将imageview设置圆角 并通过Glide加载出来
- 编译安装详解和rpm和yum
- 数字排序转变为字母排序
- pat L2-011. 玩转二叉树@