使用Let’s Encrypt轻松配置https站点

时间:2023-03-08 18:14:00
使用Let’s Encrypt轻松配置https站点

使用Let’s Encrypt轻松配置https站点

https不仅能提高网站安全,更是被搜索引擎纳入排名的因素之一。

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背后的力量: 它是在mozilla, akamai, cisco, chrome,facebook等很多互联网以及传统it公司赞助下开发完成的,技术实力可见一斑。

下面从实战的角度,为大家详细地介绍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 使其生效。

以上配置无误,就直接可以使用https,我的测试环境是 虚拟主机 + 负载均衡,整体搭建到上线使用,不到二十分钟,各大浏览器测试均正常。

最后一点是证书的有效期问题,官方默认的有效期是3个月,请确保到期之前更新一下证书。

实例验证,使用chrome打开java教程,点击地址栏左侧的图标可以看到证书的签名信息由let's encrypt提供。

你还在等什么呢?