前言
下午,圖書館閉館了了、得找一個(gè)安全的地方上網(wǎng)(o)/~,一直聽說(shuō)著Let’s Encrypt。前幾天玩了一下,但是本地運(yùn)行Let’s Encrypt不能生成證書,Maybe School DNS question :-D,那就在騰訊云服務(wù)器玩玩。
Let’s Encrypt
Let's Encrypt是由EFF、Mozilla、Cisco、Akamai、IdenTrust與密西根大學(xué)研究人員共同創(chuàng)立的免費(fèi)的憑證中心,目的在于推動(dòng)全球所有的網(wǎng)站都使用HTTPS加密傳輸,創(chuàng)建一個(gè)更安全、更具隱私性的Web。目前Let’s Encrypt由非營(yíng)利的網(wǎng)際網(wǎng)路安全研究組織(ISRG)負(fù)責(zé)營(yíng)運(yùn)。

如何配置HTTPS
- 生成證書
我們先在github克隆letsencrypt項(xiàng)目,然后生成證書。
git clone https://github.com/letsencrypt/letsencrypt
cd ./letsencrypt
# 生成證書
./letsencrypt-auto certonly -d domain.com -d www.domain.com
注意:請(qǐng)將domain換成對(duì)應(yīng)要生成證書的域名?。?!
執(zhí)行腳本之后有三種生成證書的方式可選,一般選擇standalone即可。
1: Apache Web Server plugin - Beta (apache)
2: Place files in webroot directory (webroot)
3: Spin up a temporary webserver (standalone)
成功的話將會(huì)返回如下的信息
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/samego.com/fullchain.pem. Your cert will
expire on 2017-07-13. To obtain a new or tweaked version of this
certificate in the future, simply run letsencrypt-auto again. To
non-interactively renew *all* of your certificates, run
"letsencrypt-auto renew"
并且我們可以從返回的信息知道生成證書的儲(chǔ)存目錄位于/etc/letsencrypt/live/domain.com/,一共生成四個(gè)證書文件,一般情況下 fullchain.pem 和 privkey.pem 就夠用了。
| 文件名 | 文件作用 |
| ---- | ---- | ---- |
|cert.pem | 服務(wù)端證書|
|chain.pem| 瀏覽器需要的所有證書但不包括服務(wù)端證書,比如根證書和中間證書|
|fullchain.pem| 包括了cert.pem和chain.pem的內(nèi)容|
|privkey.pem| 證書的私鑰|
證書的有效期為三個(gè)月,過(guò)期后我們需要重新生成證書,letsencrypt內(nèi)已經(jīng)有指令重新生成。
/opt/certbot/letsencrypt-auto renew
為了方便呢,我們可以crontab定時(shí)重新生成證書,如何定時(shí)呢就不說(shuō)了。
- 配置nginx
要修改的nginx的配置文件位于/etc/nginx/sites-enabled/default。
server {
listen 443;
#domain修改成你的域名即可
server_name domain.com www.domain.com;
ssl on;
#fullchain證書路徑
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
#privkey證書路徑
ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
# 下面是我個(gè)人反代理的,不用管!!!
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://alicance.github.io;
}
}
最后,我們重啟nginx服務(wù)器即可!要是nginx起不來(lái)的話,那就看看日志!!!
# 重啟nginx
sudo systemctl restart nginx.service
# 萬(wàn)一起不來(lái) 日志日志日志,重要的事情說(shuō)三遍!??!
tail -f /var/log/nginx/error.log
證書生成了、服務(wù)器配置好了,那就在瀏覽器看看。

PS:生成的證書,即使域名解析到了其它的IP照樣可以使用,適合局域網(wǎng)內(nèi)SSL。
Alic say : ****價(jià)值源于技術(shù),貢獻(xiàn)源于分享****