![006tNbRwgw1f5tq6hq9rnj309a02774g](https://ooo.0o0.ooo/2016/08/01/579efb2c15793.jpg)
在網(wǎng)上查找了不少資料之后終于弄好了 Let’s Encrypt 的 https 證書沽讹。
Let's Encrypt
Let's Encrypt是由EFF脐嫂、Mozilla晃酒、Cisco、Akamai隙咸、IdenTrust與密西根大學(xué)研究人員共同創(chuàng)立的免費(fèi)的憑證中心沐悦,目的在于推動全球所有的網(wǎng)站都使用HTTPS加密傳輸成洗,并由非營利的網(wǎng)際網(wǎng)路安全研究組織Internet Security Research Group(ISRG)負(fù)責(zé)營運(yùn)。
我選擇 Let's Encrypt 的原因之一就是因?yàn)樽C書是免費(fèi)的藏否。
首次生成證書
從Github簽出Let’s Encrypt的源代碼
git clone https://github.com/letsencrypt/letsencrypt
進(jìn)入本地源代碼目錄
cd letsencrypt
Let’s Encrypt提供多種認(rèn)證方式瓶殃,因?yàn)橹霸赩PS上有了HTTP的網(wǎng)站,所以這里采用了webroot的方式副签,其他方式請參考官方文檔
主域名的認(rèn)證
./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
子域名的認(rèn)證
./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
然后在彈出的藍(lán)底白字提示框中一路點(diǎn)擊"OK"
注意如下問題
? 請將命令中的name, your_main_domain.com, subdomain替換成你自己的名字遥椿,域名以及子域名
? 因?yàn)镚entoo目前是在試驗(yàn)階段,所以命令行加上--debug參數(shù)
? 參數(shù)--email如果沒有在命令行加上淆储,會在隨后彈出的對話框里提示你填寫
? -w指定Web服務(wù)器網(wǎng)址內(nèi)容放置的目錄冠场,請指定自己放置的目錄
生成的證書放在/etc/letsencrypt/live/[網(wǎng)站域名]
下
文件名 | 內(nèi)容 |
---|---|
cert.pem | 服務(wù)端證書 |
chain.pem | 瀏覽器需要的所有證書但不包括服務(wù)端證書,比如根證書和中間證書 |
fullchain.pem | 包括了cert.pem和chain.pem的內(nèi)容 |
privkey.pem | 證書的私鑰 |
一般情況下 fullchain.pem
和 privkey.pem
就夠用了
Nginx配置
我使用的是 lnmp 的一鍵安裝包本砰,打開 /usr/local/nginx/conf/vhost/
下 域名.conf
的文件碴裙,改成類似下面的設(shè)置。
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;
是用來實(shí)現(xiàn)80端口到443端口的流量跳轉(zhuǎn)的点额。
最后再執(zhí)行:/etc/init.d/nginx reload
重新載入配置使其生效舔株。
更新證書
./letsencrypt-auto renew
參考文章
使用Let's Encrypt輕松實(shí)現(xiàn)站點(diǎn)https
: http://www.reibang.com/p/5575893df1ed
Let’s Encrypt給你的網(wǎng)站穿上HTTPS的鎧甲,防止http劫持
: http://www.reibang.com/p/ba2a384e89ec
如何在Nginx上部署 Let's Encrypt 證書: http://bbs.qcloud.com/thread-12059-1-1.html
免費(fèi)SSL安全證書Let's Encrypt安裝使用教程(附Nginx/Apache配置)
: http://www.vpser.net/build/letsencrypt-free-ssl.html