實戰申請Let's Encrypt永久免費SSL證書過程教程及常見問題


最近需要https這里看到一份不錯的博客,收錄一下!

 

Let's Encrypt作為一個公共且免費SSL的項目逐漸被廣大用戶傳播和使用,是由Mozilla、Cisco、Akamai、IdenTrust、EFF等組織人員發起,主要的目的也是為了推進網站從HTTP向HTTPS過度的進程,目前已經有越來越多的商家加入和贊助支持。

Let's Encrypt免費SSL證書的出現,也會對傳統提供付費SSL證書服務的商家有不小的打擊。到目前為止,Let's Encrypt獲得IdenTrust交叉簽名,這就是說可以應用且支持包括FireFox、Chrome在內的主流瀏覽器的兼容和支持,雖然目前是公測階段,但是也有不少的用戶在自有網站項目中正式使用起來。

實戰申請Let's Encrypt永久免費SSL證書過程教程及常見問題

在今年黑色星期五的時候,Namecheap各種促銷活動中也包括年費0.88美元的SSL證書,當時老左也有購買了2個備用學習和適當的放到一些網站中看看效果(據說英文網站谷歌會很喜歡),當時冷雨同學就建議到時候直接使用Let's Encrypt免費SSL,畢竟有很多大公司支持的,比一些小公司提供的免費SSL證書靠譜很多。

雖然目前Let's Encrypt免費SSL證書默認是90天有效期,但是我們也可以到期自動續約,不影響我們的嘗試和使用,為了考慮到文章的真實性和以后的實戰性,老左准備利用一些時間分篇幅的展現在應用Let's Encrypt證書的過程,這篇文章分享申請的方法教程。

第一、安裝Let's Encrypt前的准備工作

根據官方的要求,我們在VPS、服務器上部署Let's Encrypt免費SSL證書之前,需要系統支持Python2.7以上版本以及支持GIT工具。這個需要根據我們不同的系統版本進行安裝和升級,因為有些服務商提供的版本兼容是完善的,尤其是debian環境兼容性比CentOS好一些。

比如CentOS 6 64位環境不支持GIT,我們還可以參考"Linux CentOS 6 64位系統安裝Git工具環境教程"和"9步驟升級CentOS5系統Python版本到2.7"進行安裝和升級。最為 簡單的就是Debian環境不支持,可以運行"apt-get -y install git"直接安裝支持,如果是CentOS直接運行"yum -y install git-core"支持。這個具體遇到問題在討論和搜索解決方案,因為每個環境、商家發行版都可能不同。在這篇文章中,老左采用的是debian 7 環境。

第二、快速獲取Let's Encrypt免費SSL證書

在之前的博文中老左也分享過幾篇關於SSL部署的過程,我自己也搞的暈乎暈乎的,獲取證書和布局還是比較復雜的,Let's Encrypt肯定是考慮到推廣HTTPS的普及型會讓用戶簡單的獲取和部署SSL證書,所以可以采用下面簡單的一鍵部署獲取證書。

PS:在獲取某個站點證書文件的時候,我們需要在安裝PYTHON2.7以及GIT,更需要將域名解析到當前VPS主機IP中。

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

cd letsencrypt

./certbot-auto --help all

./certbot-auto certonly --standalone --email admin@laozuo.org -d laozuo.org -d www.laozuo.org

注意:這里的命令中作者原來的是letsencrypt-auto,但是我看readme中是certbot-auto所以就改過來了,使用的兄弟可以測試測試;

另外就是80端口的問題,如果本地被占用了,可以暫時停下再整,下面也有相關說明

然后執行上面的腳本,我們需要根據自己的實際站點情況將域名更換成自己需要部署的。

快速獲取Let's Encrypt免費SSL證書

看到這個界面,直接Agree回車。

Let's Encrypt安裝成功

然后看到這個界面表示部署成功。目前根據大家的反饋以及老左的測試,如果域名是用的國內DNS,包括第三那方DNSPOD等,都可能獲取不到域名信息。

Let's Encrypt國內域名DNS不支持

這里我們可以看到有"The server could not connect to the client to verify the  domain"的錯誤提示信息,包括也有其他提示錯誤,"The server experienced an internal error :: Error creating new registration"我們在郵局的時候不要用國內免費郵局。所以,如果我們是海外域名就直接先用域名自帶的DNS。

第三、Let's Encrypt免費SSL證書獲取與應用

在完成Let's Encrypt證書的生成之后,我們會在"/etc/letsencrypt/live/laozuo.org/"域名目錄下有4個文件就是生成的密鑰證書文件。

cert.pem  - Apache服務器端證書
chain.pem  - Apache根證書和中繼證書
fullchain.pem  - Nginx所需要ssl_certificate文件
privkey.pem - 安全證書KEY文件

如果我們使用的Nginx環境,那就需要用到fullchain.pem和privkey.pem兩個證書文件,在部署Nginx的時候需要用到(參考:LNMP一鍵包環境安裝SSL安全證書且部署HTTPS網站URL過程)。在這篇文章中老左就不詳細演示Let's Encrypt證書證書的安裝,后面再重新折騰一篇文章詳細的部署證書的安裝Nginx和Apache。

ssl_certificate /etc/letsencrypt/live/laozuo.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/laozuo.org/privkey.pem;

比如我們在Nginx環境中,只要將對應的ssl_certificate和ssl_certificate_key路徑設置成我們生成的2個文件就可以,最好不要移動和復制文件,因為續期的時候直接續期生成的目錄文件就可以,不需要再手工復制。

第四、解決Let's Encrypt免費SSL證書有效期問題

我們從生成的文件中可以看到,Let's Encrypt證書是有效期90天的,需要我們自己手工更新續期才可以。

./certbot-auto certonly --renew-by-default --email admin@laozuo.org -d laozuo.org -d www.laozuo.org

這樣我們在90天內再去執行一次就可以解決續期問題,這樣又可以繼續使用90天。如果我們怕忘記的話也可以制作成定時執行任務,比如每個月執行一次。

第五、關於Let's Encrypt免費SSL證書總結

通過以上幾個步驟的學習和應用,我們肯定學會了利用Let's Encrypt免費生成和獲取SSL證書文件,隨着Let's Encrypt的應用普及,SSL以后直接免費不需要購買,因為大部分主流瀏覽器都支持且有更多的主流商家的支持和贊助,HTTPS以后看來也是趨勢。在Let's Encrypt執行過程在中我們需要解決幾個問題。

A - 域名DNS和解析問題。在配置Let's Encrypt免費SSL證書的時候域名一定要解析到當前VPS服務器,而且DNS必須用到海外域名DNS,如果用國內免費DNS可能會導致獲取不到錯誤。

B - 安裝Let's Encrypt部署之前需要服務器支持PYTHON2.7以及GIT環境,要不無法部署。

C - Let's Encrypt默認是90天免費,需要手工或者自動續期才可以繼續使用。

 

本文固定鏈接: http://www.laozuo.org/7676.html | 老左博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM