简介
Let's Encrypt 免费证书的出现,也会对传统提供付费SSL证书服务的商家有不小的打击。到目前为止,Let's Encrypt获得IdenTrust交叉签名,这就是说可以应用且支持包括FireFox、Chrome在内的主流浏览器的兼容和支持,虽然目前是公测阶段,但是也有不少的用户在自有网站项目中正式使用起来。
步骤
- 环境要求:Python 2.7 + 及 git
- 用git获取 letsencrypt
# 获取letsencrypt git clone https://github.com/letsencrypt/letsencrypt # 进入letsencrypt目录 cd letsencrypt # 生成证书 ./letsencrypt-auto certonly --standalone --email 你的邮箱 -d xxx.xxx(域名) -d www.xxx.xxx
注: 生成证书前请关闭服务器的apache或nginx,否则会生成失败
-
在完成Let's Encrypt证书的生成之后,我们会在"/etc/letsencrypt/live/xxx.xxx/"域名目录下有4个文件就是生成的密钥证书文件。
cert.pem - used for OCSP stapling in Nginx >=1.3.7.
chain.pem - will break many server configurations, and should not be used without reading further documentation
fullchain.pem - 在大多数服务器软件中使用的证书文件。
privkey.pem - 证书私钥
如果我们使用的Nginx环境,那就需要用到fullchain.pem和privkey.pem两个证书文件,在部署Nginx的时候需要用到。在Nginx环境中,只要将对应的ssl_certificate和ssl_certificate_key路径设置成我们生成的2个文件就可以。
# 打开linux配置文件,找到HTTPS 443端口配置的server
ssl on;
ssl_certificate /etc/letsencrypt/live/xxx.xxx/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xxx.xxx/privkey.pem;
如果我们使用的Apache环境
# 找到ssl配置文件,打开ssl引擎,配置证书,秘钥地址
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/xxx.xxx/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxx.xxx/privkey.pem
4. 解决Let's Encrypt免费SSL证书有效期问题
Let's Encrypt免费SSL证书有效期为90天, 需要我们自己手工更新续期才可以。
./letsencrypt-auto certonly --renew-by-default --email 你的邮箱 -d xxx.xxx -d www.xxx.xxx
这样我们在90天内再去执行一次就可以解决续期问题,这样又可以继续使用90天。如果我们怕忘记的话也可以利用linux crontab定时执行更新任务
注: http自动转https
# nginx配置: 在http 80端口的配置文件里加入下面的一行
rewrite ^(.*) https://$server_name$1 permanent;
# apache 配置: 在 http 80端口的配置文件里加入以下的内容
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]