SSLForFree.com NGINX免費申請使用

有時候難免會遇到一種狀況,就是某些臨時性的網址需要SSL憑證,但為了只使用1~3月個網址,還要買SSL憑證(一年)。都是一年期
雖然價格不貴,但就是覺得浪費。
還好有SSLForFree.com的免費憑證可以申請使用。
以下是我自己申請安裝的紀錄(範例)

例如想申請test.bruce-blog.tw

在中間輸入要申請的SSL憑證網址:test.bruce-blog.tw然後按下Create Free SSL Certificate就會出現下一個畫面

網域認證

這個時候要選擇網域認證的方式,(畢竟SSL憑證要是被亂力佣也不行。)
當然要是網域持有者才能申請,這樣才能多一道保護。
基本上有三種方式:FTP驗證?、手動上傳檔案道主機驗證、和第三個DNS手動驗證。 (我自己是選擇DNS TXT驗證比較方便。
因為網址託管在Cloudflare上,所以通常設定一下很快就生效。

DNS驗證就是設定一組指定的TXT紀錄即可。

點選Manually Verify Domainanually Verify Domain即可。
會再出現以下畫面。

FreeSSL NGINX
FrssSSL TXT驗證設定檔

CloudFlare 設定畫面
Type:TXT Name:輸入 Content:輸入 TTL:選2min 就好。
建議驗證過後就把TXT檔設定刪除。(久了才不會又多又亂)

CloudFlare 設定TXT紀錄

再來要把在NGINX主機上的設定產生的CSR,放到那個小框框,放到那個小框框。然後按下Download SSL Certificate。就可以下載憑證嚕。

FreeSSL Nginx

在來把下載的憑證解壓縮,會有三個檔案ca_bundle.crt、certificate.crt、private.key (Key可以用不管他因為用不到)。
然後要把 ca_bundle.crt、certificate.crt 兩個檔案合併。
可以在Linux中輸入指令合併
cat certificate.crt ca_bundle.crt >> ca_ssl.crt (自己取的呵呵)。
PS: 這邊因為用指令後會發生一件錯誤
可能會看到以下畫面
PEM_read_bio_X509_AUX() failed (SSL: error:0906D066:PEM routines:PEM_read_bio:bad end line)
原因是合併時可能會看到下面這個畫面

—–END CERTIFICATE———-BEGIN CERTIFICATE—–
沒錯!!兩個檔聯住了沒有斷開!!所以會出錯,記得打開檔案 ca_ssl.crt
改成 (
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–

然後就是NGINX設定檔中設定一下
server {
listen 443 ;
server_name <test.bruce-blog.tw>;
ssl_certificate /etc/ssl/ test.bruce-blog.tw /ca_ssl.crt ;
ssl_certificate_key /etc/ssl/ test.bruce-blog.tw<test_bruce.key ;
}
名稱就好記不容易出錯,自己能判斷正確就好。

最後測試一下# nginx -t OK就重新載入設定 service nginx relaod