用 Let’s Encrypt 使你的网站用上 https

006tNbRwgw1f5tq6hq9rnj309a02774g

在网上查找了不少资料之后终于弄好了 Let’s Encrypt 的 https 证书。

Let’s Encrypt

Let’s Encrypt是由EFF、Mozilla、Cisco、Akamai、IdenTrust与密西根大学研究人员共同创立的免费的凭证中心,目的在于推动全球所有的网站都使用HTTPS加密传输,并由非营利的网际网路安全研究组织Internet Security Research Group(ISRG)负责营运。
我选择 Let’s Encrypt 的原因之一就是因为证书是免费的。

首次生成证书

从Github签出Let’s Encrypt的源代码

git clone https://github.com/letsencrypt/letsencrypt

进入本地源代码目录

cd letsencrypt
Let’s Encrypt提供多种认证方式,因为之前在VPS上有了HTTP的网站,所以这里采用了webroot的方式,其他方式请参考官方文档

主域名的认证

./letsencrypt-auto --debug certonly --webroot --email name@your_main_domain.com -d your_main_domain.com -d www.your_main_domain.com -w /var/www/your_main_domain.com

子域名的认证

./letsencrypt-auto --debug certonly --webroot --email name@your_main_domain.com -d subdomain.your_main_domain.com -w /var/www/your_main_domain.com/subdomain
然后在弹出的蓝底白字提示框中一路点击”OK”

注意如下问题

•   请将命令中的name, your_main_domain.com, subdomain替换成你自己的名字,域名以及子域名 
•   因为Gentoo目前是在试验阶段,所以命令行加上--debug参数
•   参数--email如果没有在命令行加上,会在随后弹出的对话框里提示你填写
•   -w指定Web服务器网址内容放置的目录,请指定自己放置的目录

生成的证书放在/etc/letsencrypt/live/[网站域名]

文件名 内容
cert.pem 服务端证书
chain.pem 浏览器需要的所有证书但不包括服务端证书,比如根证书和中间证书
fullchain.pem 包括了cert.pem和chain.pem的内容
privkey.pem 证书的私钥

一般情况下 fullchain.pemprivkey.pem 就够用了

Nginx配置

我使用的是 lnmp 的一键安装包,打开 /usr/local/nginx/conf/vhost/域名.conf 的文件,改成类似下面的设置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
listen 80;
server_name www.slinvent.com slinvent.com;
return 301 https://$server_name$request_uri;
}
server
{
listen 443 ssl;
#listen [::]:80;
server_name www.slinvent.com slinvent.com;
index index.html index.htm index.php default.html default.htm default.php;
root /home/wwwroot/www.slinvent.com;
ssl_certificate /etc/letsencrypt/live/slinvent.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/slinvent.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
……
}

其中return 301 https://$server_name$request_uri;是用来实现80端口到443端口的流量跳转的。
最后再执行:/etc/init.d/nginx reload 重新载入配置使其生效。

更新证书

./letsencrypt-auto renew

参考文章

使用Let’s Encrypt轻松实现站点https
: http://www.jianshu.com/p/5575893df1ed
Let’s Encrypt给你的网站穿上HTTPS的铠甲,防止http劫持
: http://www.jianshu.com/p/ba2a384e89ec
如何在Nginx上部署 Let’s Encrypt 证书: http://bbs.qcloud.com/thread-12059-1-1.html
免费SSL安全证书Let’s Encrypt安装使用教程(附Nginx/Apache配置)
: http://www.vpser.net/build/letsencrypt-free-ssl.html

×

感谢支持

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. Let’s Encrypt
  2. 2. 首次生成证书
    1. 2.1. 从Github签出Let’s Encrypt的源代码
    2. 2.2. 进入本地源代码目录
      1. 2.2.1. 主域名的认证
      2. 2.2.2. 子域名的认证
    3. 2.3. 注意如下问题
  3. 3. Nginx配置
  4. 4. 更新证书
  5. 5. 参考文章
,