2015年10月份,微博上偶然看到Let's Encrypt 推出了beta版,作為一個曾經被https虐出血的碼農來說,這無疑是一個重磅消息。並且在全站Https的大趨勢下,Let's Encrypt 脫穎而出,無疑會對傳統SSL證書提供商造成不小的打擊,並將Https的應用和推廣上升到一個空前火熱的階段。
Let’s Encrypt是由ISRG(Internet Security Research Group)提供的免費SSL項目,現由Linux基金會托管,他的來頭很大,由Mozilla、思科、Akamai、IdenTrust和EFF等組織發起,現在已經得到Google、Facebook等大公司的支持和贊助,目的就是向網站免費簽發和管理證書,並且通過其自身的自動化過程,消除了購買、安裝證書的復雜性,只需幾行命令,就可以完成證書的生成並投入使用,甚至十幾分鍾就可以讓自己的http站點華麗轉變成Https站點。
Let's Encrypt背后的力量
下面從實戰的角度,為大家詳細地介紹Let's Encrypt的使用過程
1、安裝Let's Encrypt
第一步:執行以下命令
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt-auto certonly --email xxx@xx.com
提示:
1、如果提示git命令無效的話,需要安裝一下GIt,直接執行命令 yum install git-all 完成安裝,
2、如果是RedHat/CentOs6系統的話,需要提前安裝EPEL(Extra Packages for Enterprise Linux),執行命令 yum install epel-release
3、 整個過程需要主機連接外網,否則會導致報以下錯誤
IMPORTANT NOTES:
- The following errors were reported by the server: Domain: on-img.com Type: urn:acme:error:connection Detail: Failed to connect to host for DVSNI challenge Domain: www.on-img.com Type: urn:acme:error:connection Detail: Failed to connect to host for DVSNI challenge
4、Let's encrypt 是由python編寫的開源項目,基於python2.7環境,如果系統安裝的是python2.6,會提示升級
也可以執行以下命令(官方不推薦)./letsencrypt-auto certonly --email xxx@xx.com --debug
第二步:接下來提示輸入域名 多個用空格隔開
出現以下提示說明證書生成成功
2、使用證書
進入/etc/letsencrypt/live/on-img.com/下,on-img.com是第二部中填寫的域名,到時候換成自己的域名即可。
cert.pem 服務器證書
privkey.pem 是證書私鑰
如果是雲服務器+負載均衡的話,直接添加以上證書,綁定負載均衡,直接訪問https:// xxx.com
如果是自己配置的Nginx的,需要以下配置
server
{
listen 443 ssl; / server_name xxx.com; //這里是你的域名 index index.html index.htm index.php default.html default.htm default.php; root /opt/wwwroot/ //網站目錄 ssl_certificate /etc/letsencrypt/live/xxx.com/fullchain.pem; //前面生成的證書,改一下里面的域名就行,不建議更換路徑 ssl_certificate_key /etc/letsencrypt/live/xxx.com/privkey.pem; //前面生成的密鑰,改一下里面的域名就行,不建議更換路徑 ........ }
最后 別忘了重載Nginx
執行 /etc/init.d/nginx reload 使其生效。
3、最后
以上配置無誤,就直接可以使用https,我的測試環境是 虛擬主機 + 負載均衡,整體搭建到上線使用,不到二十分鍾,各大瀏覽器測試均正常。
最后一點是證書的有效期問題,官方默認的有效期是3個月,請確保到期之前更新一下證書。