Let’s Encrypt 最近又改版了,之前的教學文章似乎已經不能使用,昨天自己摸了一下新版的Certbot認證方式,因此把方式貼上來,免得之後自己忘記,結果又要重新探索一次。
我這邊採用的是手動認證,並且在A主機上幫目標B進行認證。
我的環境是QNAP NAS上的Apache要使用HTTPS,我簡單測試一下,似乎無法直接跑Certbot,後來想想,怕NAS版本異動以後Certbot的設定就被洗掉,因此決定改採用手動認證,這樣比較麻煩,但是我確定可以解決我的問題。
*這邊還是建議如果你的環境可以auto renew的話,就不要採用我這篇的教學。
首先我先安裝一台Ubuntu在VirtualBOX上。接著在裡面安裝Certbox,步驟如下:
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install certbot
接著準備開始手動認證:
sudo certbot certonly --manual --preferred-challenges http記憶中第一次會請你輸入Email ,請依照指示填寫即可,接著會輸入domain name,我這邊是連host都輸入,Certbot的範例似乎可以使用整個Domain認證(?):
接著會問你,你的IP會被拿來申請Certificate,如果你執行在手動模式(這個電腦不是你的目標伺服器),請確定這樣你OK,這邊請輸入Y(其實我不知道輸入N會怎麼樣)
接下來系統會產生認證序號,如下方圖片,請手動建立一個檔案,檔名為「p-LksOHJyo1P4dTOMmC5MkrkuNfr5UEYq9gODfKmL6s」,內容為「p-LksOHJyo1P4dTOMmC5MkrkuNfr5UEYq9gODfKmL6s.ljQb7kSPkdlQe2kscmVJXcCj7aL2CV27Y6oLTRGrlak」,這邊你必須依照實際狀況去產生。
接著把檔案上傳到你的網頁伺服器,放到以網頁伺服器根目錄出發「.well-known/acme-challenge/」裡面,一定要確保底下網址點下去是有東西的。完成後按ENTER。
完成後結果如下
接著進入/etc/letsencrypt/live/裡面就可以看到認證的網域資料夾,再進去就會看到認證檔案,
如果你跟我一樣是QNAP主機的話,進入「控制台->安全設定->安全憑證&私人金鑰」,憑證欄位貼入cert.pem檔案的內容,私人金鑰欄位貼入privkey.pem檔案內容既可。
這邊要注意一下,我有發生更新憑證之後,WEB的HTTPS PORT被改掉,並且虛擬伺服器也被停止啟用的狀況,建議大家要多檢查一下。