使用Let's Encrypt搭建永久免费的HTTPS服务

Posted digdeep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Let's Encrypt搭建永久免费的HTTPS服务相关的知识,希望对你有一定的参考价值。


1.概述
1.1 HTTPS概述
HTTPS即HTTP + TLS,TLS 是传输层加密协议,它的前身是 SSL 协议。我们知道HTTP协议是基于TCP的。简而言之HTTPS就是在TCP的基础上套一层TLS协议,对HTTP原来在TCP明文传输的内容进行加密,达到安全的目的。

HTTP 和 TLS 在协议层的位置以及 TLS 协议的组成如下图:

技术图片



目前很多网站都启用了HTTPS,这肯定是未来的趋势。而且一些场景必须使用HTTPS协议的,比如微信公众号的某些功能、小程序接入H5等等。
详情参考:https://developer.baidu.com/resources/online/doc/security/https-pratice-1.html
1.2 Let’s Encripty介绍
Let’s Encrypt是一个非盈利的,免费的CA,可以提供免费HTTPS认证服务。
提供了一套完整的工具,基于这套工具,我们可以免费来搭建HTTPS 网站。
详情参考:https://letsencrypt.org/
1.3 Ssllabs介绍
Ssllabs可以提供对https部署进行安全监测,评价的服务。
详情参考:https://www.ssllabs.com/ssltest/analyze.html


2.Let’s Encrypt部署HTTPS服务
2.1 为什么使用Let’s Encrypt
国内有许多机构可以提供免费的SSL证书,但是一般只有一年的免费服务。而且基于cron可以实现定时更新证书,从而实现永久免费的目的。

2.2 安装Let’s Encrypt
第一步:安装git
因为后面需要使用从github拉取安装文件。
yum install git
技术图片
第二步:获取letencrypt安装代码
cd /home
git clone https://github.com/letsencrypt/letsencrypt.git
技术图片

技术图片

letsencrypt就是从github下载下来的安装代码;

技术图片
certbot-auto 是主要的安装命令。
第三步:签发SSL证书和密钥文件
./certbot-auto centonly --renew-by-default --email [email protected] -d digdeep.diantusoft.com
技术图片
可以看到使用standalone模式对 域名 digdeep.diantusoft.com 签发SSL证书成功。需要注意,standalone模式会使用本服务器的80端口来完成域名所有权的校验。所以需要保证80端口和443端口没有被占用。
standalone是一个独立的服务,可以看作是一个小型的webserver,它使用80或443端口来和letsencrypt服务器进行通信。因此,在使用standalone获取证书时,需要关闭正在运行的webserver,除非webserver使用的是80端口和443端口之外特殊的端口。

在完成Let‘s Encrypt证书的生成之后,我们可以看到生成的密钥证书文件:
技术图片
cert.pem - Apache服务器端证书
chain.pem - Apache根证书和中继证书
fullchain.pem - nginx所需要ssl_certificate文件
privkey.pem - 安全证书KEY文件
如果我们使用的Nginx环境,那就需要用到fullchain.pem和privkey.pem两个证书文件,在部署Nginx的时候需要用到。
第四步:配置nginx启用SSL
技术图片
第五步:测试https
技术图片
如何nginx –s reload 没有加载证书,则重启Nginx.
技术图片
可以看到https访问正常。
2.3 证书续期
Let’s Encrypt证书的有效期为90天,过期时需要手动更新续期。
下面我们是有cron来进行定期更新:
技术图片
在每个月的1号,1点30分进行证书的更新;
在每个月的1好,1点35分重启nginx,使用新的证书;

2.3 对证书安全性进行测试
https://www.ssllabs.com/ssltest/analyze.html 访问这个网址,输入域名:
digdeep.diantusoft.com就可以进行测试,测试结果:
技术图片
可以看到A级,是很好的安全级别。
这个测试结果还包括其他有用的信息:
1. TLS版本支持信息

技术图片
2. 模拟不同客户端进行测试,测试兼容性信息:
技术图片

 

技术图片

可以看到不支持 XP下面的IE8,对XP的IE6没有进行测试。

3.参考文档
1. https://developer.baidu.com/resources/online/doc/security/https-pratice-1.html
2. https://letsencrypt.org/
3. https://www.ssllabs.com/ssltest/analyze.html

 

以上是关于使用Let's Encrypt搭建永久免费的HTTPS服务的主要内容,如果未能解决你的问题,请参考以下文章

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

centos 下安装 Let’s Encrypt 永久免费 SSL 证书

centos 下安装 Let’s Encrypt 永久免费 SSL 证书

centos7 nigx 免费永久获取 Let‘s Encrypt 证书

let's encrypt生成免费https证书 ubuntu+tomcat+nginx+let's encrypt

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