申請Let's Encrypt永久免費SSL證書

天府雲創發表於2018-09-07

Let's Encrypt簡介

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 的最有價值的貢獻是它的 ACME 協議,第一份全自動伺服器身份驗證協議,以及配套的基礎設施和客戶端。這是為了解決一直以來HTTPS TLS X.509 PKI 信任模型,即證照權威(Certificate Authority, CA)模型缺陷的一個起步。

關於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天免費,需要手工或者自動續期才可以繼續使用。(記得要先用郵箱去註冊)

另外就是80埠的問題,如果本地被佔用了,可以暫時停下再整。不然會出現如下錯誤.

Problem binding to port 80: Could not bind to IPv4 or IPv6

步驟如下:

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

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

#檢查系統是否安裝git,如果已經自帶有git會出現git版本號,沒有則需要我們自己安裝
git  --version 
#git 安裝
yum install git
#檢查Python的版本是否在2.7以上
python -v //2.6版本
#安裝python所需的包
yum install zlib-devel
yum install bzip2-devel
yum install openssl-devel
yum install ncurses-devel
yum install sqlite-devel
#獲取到Python
cd /usr/local/src
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz
#解壓Python2.7.12
tar -zxvf Python-2.7.12.tar.xz
#編譯python
cd Python-2.7.12/
./configure --prefix=/usr/local/python2.7
make && make install
#建立連結
ln -s /usr/local/python2.7/bin/python2.7 /usr/local/bin/python
#解決系統 Python 軟連結指向 Python2.7 版本後,因為yum是不相容 Python 2.7的,所需要指定 yum 的Python版本
# vi /usr/bin/yum 
將頭部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6

第二、獲取Let's Encrypt免費SSL證照

#獲取letsencrypt
git clone https://github.com/letsencrypt/letsencrypt
#進入letsencrypt目錄
cd letsencrypt

./certbot-auto --help all

#生成證照
./letsencrypt-auto certonly --standalone --email quiniton@163.com -d zhaoheqiang.me -d www.zhaoheqiang.me

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

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

 

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

 

然後看到這個介面表示部署成功。目前根據大家的反饋以及筆者的測試,如果域名是用的國內DNS阿里雲dns等,包括第三方DNSPOD等,都可能獲取不到域名資訊。

這裡我們可以看到有"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證照的生成之後,我們會在"/etc/letsencrypt/live/zhaoheqiang.me/"域名目錄下有4個檔案就是生成的金鑰證照檔案。(證照申請完之後,Certbot會告訴你證照所在的目錄,一般來說會在/etc/letsencrypt/live/這個目錄下)

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個檔案就可以,最好不要移動和複製檔案,因為續期的時候直接續期生成的目錄檔案就可以,不需要再手工複製。

【注意centos 7之後沒有生產live目錄,在active目錄下,注意識別】

如果我們使用的Nginx環境,那就需要用到fullchain.pem和privkey.pem兩個證照檔案,在部署Nginx的時候需要用到。在Nginx環境中,只要將對應的ssl_certificate和ssl_certificate_key路徑設定成我們生成的2個檔案就可以。

#開啟linux配置檔案,找到HTTPS 443埠配置的server
 ssl_certificate /etc/letsencrypt/live/zhaoheqiang.me/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/zhaoheqiang.me/privkey.pem;

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

Let's Encrypt證照是有效期90天的,需要我們自己手工更新續期才可以。
命令如下:

 ./letsencrypt-auto certonly --renew-by-default --email quiniton@163.com -d zhaoheqiang.me -d www.zhaoheqiang.me

這樣我們在90天內再去執行一次就可以解決續期問題,這樣又可以繼續使用90天。如果我們怕忘記的話也可以利用linux crontab定時執行更新任務,我們也可以到期自動續約,不影響我們的嘗試和使用。

第五、其他免費SSL證照的

百度雲、阿里雲、亞馬遜雲、騰訊雲、華為雲、七牛雲、又拍雲、CloudFlare、StartSSL 和青雲等雲廠商這類的官網直接免費申請 TrustAsia(已被賽門鐵殼收購,所以推出免費的DV SSL證照服務)、Let’s Encrypt 的 DV SSL 單域名證照。(可以省錢哦)

(注意不要選用沃通的免費證照有法律風險,而且被各大瀏覽器列為不信任名單)

FreeSSL.org - 一個申請免費HTTPS證照的網站 https://freessl.org/    

Free SSL Certificates and Free SSL Tools @ ZeroSSL - Zero cost SSL https://zerossl.com/

SSL工具大全 - 便宜SSL https://www.pianyissl.com/tools         好東西一定要分享和轉發哦~!

免費申請SSL證照再享免費註冊域名  https://www.oray.com/activity/180501

SSL/TLS安全評估報告 HTTPS網站安全檢測: https://myssl.com/

SSL For Free - Free SSL Certificates in Minutes https://www.sslforfree.com/

SSL Converter - Convert SSL Certificates to different formats https://www.sslshopper.com/ssl-converter.html (SSL證照轉換)

Let's Encrypt_SSL證照申請_Https證照購買_快速申請網站安全證照_DV證照_自動延期與更新部署流程 - Easy HTTPs https://easy.zhetao.com/

Let's Encrypt 證照生成,certbot-auto 生成 ssl 通用證照 配置 https 自動續期 - 黑客派 https://hacpai.com/article/1531709298417

但事情有利有弊,為什麼不建議選擇免費的SSL證照?

在網站安全問題日趨嚴重的今天,越來越多的網站都會選擇安裝SSL證照,以此來進行認證網站的身份和HTTPS資訊傳輸加密。

目前市場中除了有收費的證照之外,還有一些免費的SSL證照。所以很多朋友都在網上找一些免費的SSL證照來安裝,並且樂此不疲。那麼,免費SSL證照究竟好不好呢?這裡就簡單分析下。

眾所周知,SSL證照是由數字證照管理機構(也就是簡稱CA機構)簽發的,所以一些CA機構為了加快SSL證照的普及和提升自身品牌的SSL證照的市場佔有率,這些CA機構也就對外提供了一些免費的SSL證照。

目前SSL證照的主要型別有DV型(域名型)、OV型(組織型)和EV型(增強型)這三種。這三種證照中CA機構在簽發OV型證照,是需要網站提交身份資質檔案(如企業營業執照、組織機構程式碼證等),經過人工稽核後才會頒發。而EV證照要求則是更加的嚴格,除了OV證照的要求外,還需要律師函的稽核。

不過DV證照是這三種證照中等級最低的,通常只需要通過程式自動匹配申請人或機構資訊和所申請的域名資訊,只要匹配一致就能獲得證照,無需人工稽核,而且快的話十分鐘就能安裝好。所以一些CA機構就將部分低等的DV證照進行免費發放,以此來吸引廣大使用者。

而證照因為這種證照的稽核並不嚴謹,申請很簡單,並且免費的DV證照在安全等級上也是最低的,僅僅能夠起到簡單的HTTPS資訊加密的作用,而證照的另一項重要功能則喪失,也就是域名所有者的身份資訊真實性的驗證。

於此同時,國內CA機構CFCA中國金融認證中心SSL產品研發方面表示,目前免費的SSL證照在身份驗證機制上並不完善,所以對使用者、網站自身的安全考慮,使用者在選擇證照時應謹慎考慮,不建議大家使用免費SSL證照。

此外,由於免費SSL證照申請容易,稽核寬鬆,安全級別低,這樣很容易被一些賭博、釣魚、欺詐網站使用。因此,大家在瀏覽安裝過低等級的DV證照的網站時,也要保持警惕,千萬不要因為該網站安裝了SSL證照就百分百的信任它,以免造成不必要的損失。

目前就SSL證照的價格來說,正規CA頒發的DV證照有幾百元的,OV證照有幾千元的,EV證照是幾千到上萬的價格,這些都不等,大家可以根據自身網站的效能來合理安置SSL證照型別。對於一些大型的企業站或者一些涉及到使用者隱私、電子商務、金融交易的網站,免費證照是絕對不能用的,一定要選擇具有完整身份驗證機制的OV或EV證照。

現在提供免費或收費的SSL證照商家有很多,主機偵探建議大家在選擇時一定要慎重選擇,提高警惕,務必要選擇有資質、權威性高的CA機構頒發的SSL證照。

通過以上分析想必大家也都瞭解,處於安全考慮最好是不要使用免費的SSL證照,不僅安全效能低,而且還會存在一些潛在的危險。當然,如果是部落格、論壇型別等對資訊保安要求不嚴格的個人網站來說,不想花錢的話,倒是可以申請一個免費的SSL證照

相關文章