2015年10月份,微博上偶然看到Let's Encrypt 推出了beta版,作为一个曾经被https虐出血的码农来说,这无疑是一个重磅消息。并且在全站Https的大趋势下,Let's Encrypt 脱颖而出,无疑会对传统SSL证书提供商造成不小的打击,并将Https的应用和推广上升到一个空前火热的阶段。
Let’s Encrypt是由ISRG(Internet Security Research Group)提供的免费SSL项目,现由Linux基金会托管,他的来头很大,由Mozilla、思科、Akamai、IdenTrust和EFF等组织发起,现在已经得到Google、Facebook等大公司的支持和赞助,目的就是向网站免费签发和管理证书,并且通过其自身的自动化过程,消除了购买、安装证书的复杂性,只需几行命令,就可以完成证书的生成并投入使用,甚至十几分钟就可以让自己的http站点华丽转变成Https站点。
Let's Encrypt背后的力量
下面从实战的角度,为大家详细地介绍Let's Encrypt的使用过程
1、安装Let's Encrypt
第一步:执行以下命令
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --email xxx@xx.com
提示:
1、如果提示git命令无效的话,需要安装一下GIt,直接执行命令 yum install git-all 完成安装,
2、如果是RedHat/CentOs6系统的话,需要提前安装EPEL(Extra Packages for Enterprise Linux),执行命令 yum install epel-release
3、 整个过程需要主机连接外网,否则会导致报以下错误
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain: on-img.com
Type: urn:acme:error:connection
Detail: Failed to connect to host for DVSNI challenge
Domain: www.on-img.com
Type: urn:acme:error:connection
Detail: Failed to connect to host for DVSNI challenge
4、Let's encrypt 是由python编写的开源项目,基于python2.7环境,如果系统安装的是python2.6,会提示升级
也可以执行以下命令(官方不推荐)./letsencrypt-auto certonly --email xxx@xx.com --debug
第二步:接下来提示输入域名 多个用空格隔开
出现以下提示说明证书生成成功
2、使用证书
进入/etc/letsencrypt/live/on-img.com/下,on-img.com是第二部中填写的域名,到时候换成自己的域名即可。
cert.pem 服务器证书
privkey.pem 是证书私钥
如果是云服务器+负载均衡的话,直接添加以上证书,绑定负载均衡,直接访问https:// xxx.com
如果是自己配置的Nginx的,需要以下配置
server
{
listen 443 ssl; /
server_name xxx.com; //这里是你的域名
index index.html index.htm index.php default.html default.htm default.php;
root /opt/wwwroot/ //网站目录
ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem; //前面生成的证书,改一下里面的域名就行,不建议更换路径
ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem; //前面生成的密钥,改一下里面的域名就行,不建议更换路径
........
}
最后 别忘了重载Nginx
执行 /etc/init.d/nginx reload 使其生效。
3、最后
以上配置无误,就直接可以使用https,我的测试环境是 虚拟主机 + 负载均衡,整体搭建到上线使用,不到二十分钟,各大浏览器测试均正常