Let’s encrypt 计划为网站提供免费的基本 SSL 证书,以加速互联网从 HTTP 向 HTTPS 过渡。该项目由Mozilla、Cisco、Akamai、IdenTrust、EFF 和密歇根大学研究人员共同参与。

https的ssl证书问题一直是广大站长头疼的问题,自从百度宣布https站点正常收录并优先抓取以来,很多网站开始向https过渡,最近Apache和Nginx新版本相继开始支持http/2,由于http/2必须使用https,使得ssl的证书问题更加迫切。

https2.jpg

ssl证书一般价格比较昂贵,Comodo这些廉价证书又无法续期。Let’s encrypt项目雪中送炭,很好的解决了SSL证书问题。
该项目目前已经开始邀请测试(内测),并已于2015年12月3日公测。
申请地址:现在可能已经不需要了。

使用步骤

客户端工具使用python,建议2.7版本以上,2.6要加上–debug参数。
客户端安装命令:(以debian为例)
1、先安装git工具并克隆letsencrypt代码,已安装请跳过

apt-get -y install python-pip python-dev git
git clone https://github.com/letsencrypt/letsencrypt

2、生成证书,之前请先停止http服务

cd letsencrypt
./letsencrypt-auto certonly --server https://acme-v01.api.letsencrypt.org/directory --agree-dev-preview

执行过程中会要求你输入域名和email,其中域名不支持通配符,所以你可以输入多个子域名。
执行成功的话会在/etc/letsencrypt/live/根域名/目录下生成4个pem文件。fullchain.pem就是配置https站点需要使用的crt文件,privkey.pem就是key文件。

3、证书正确生成后需要在http服务器配置,我是以nginx为例。
找到你域名的配置文件,一般在/etc/nginx/conf.d/域名.conf。 当然也很可能不在这里,要看你的生产环境。
在里面加入

server {
listen 443;
server_name imyoy.com, www.imyoy.com;
ssl on;
ssl_certificate /etc/letsencrypt/live/www.imyoy.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.imyoy.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;
ssl_session_cache shared:SSL:50m;
ssl_prefer_server_ciphers on;
//后面是你的站点信息,同之前一样。

}

还可以跟上80端口

server
{
    listen  80;
    server_name imyoy.com www.imyoy.com;
    return 301 https://www.imyoy.com$request_uri;
    //后面是你的站点信息,同之前一样。
  }

重启nginx服务,这样就可以看到https协议已经启用了,如下图

https0.jpg

注意点:
1、编译的时候,最好确保python版本为2.7,否则会有奇怪的问题。
2、配置完之后不出现小绿锁,很大可能是因为页面引用了http协议的资源,可以在chrome浏览器下按F12看到哪些资源跨协议调用。可以将其地址改为https即可(当然在其空间支持的情况下)。如要验证,可以建立个helloworld页面即可判断。
3、博主在是用了一段之后(一周),放弃了https的使用。为什么呢?因为博主的小鸡只有128M,考虑到每次建立安全链接对资源的占用特别是对打开速度的影响,不得不忍痛去掉了,也请大家酌情使用。