Let’s Encrypt ssl證書申請流程 Let’s Encrypt的證書頒發(fā)機制基于ACME協(xié)議(ACME protocol),ACME協(xié)議簡單理解就是一種用于快速認證、頒發(fā)SSL證書的處理流程和認證機制。Let’s Encrypt基于ACME協(xié)議自助頒發(fā)證書的過程由Let’s Encrypt提供一個工具完成,工具名稱現(xiàn)在叫做:certbot,在linux下certbot工具安裝后也就是certbot命令。 環(huán)境假設
配置APT安裝Certbot 首先確定你有add-apt-repository命令,如果沒有,先裝上:
執(zhí)行下面腳本安裝Certbot
執(zhí)行# certbot -h,如果看到說明信息,就表示安裝成功了(一般APT安裝不會失?。?/p> 注冊Certbot 其實這是Certbot提供的一個幫助性服務:
執(zhí)行上面這個命令,同意幾個協(xié)議,填寫郵箱,將來如果不小心丟了證書憑證,可以通過郵箱找回。 使用certbot工具申請letsencrypt的免費SSL證書 申請SSL證書之前,先梳理幾個要點: 1、確定好擬申請SSLl證書的域名,如:www.test.com、account.test.com等其他域名(和主機); 2、確定擬申請SSL證書的域名正確解析到當前主機, 3、確定好擬申請SSL證書域名解析到當前主機后的web根目錄,假設為:/var/www certbot申請SSL有多種模式和方法可選,而且certbot試圖成為一個集申請SSL證書、安裝SSL證書于一體的智能化工具,這也導致了certbot目前有多種使用方法;將SSL證書申請和自動化安裝集成于一體當然是好事兒,但由于當前市面服務器軟件多種多樣,必然導致兼容性要得到保障的話certbot工具還需要較長一段時間來完善。所幸理解清楚certbot工具到底能做些什么,分哪些過程和步驟,哪些是不需要certbot幫我自動完成的就可以了。本文僅僅將certbot當做一個申請SSL證書的工具,并不需要certbot來自動完善nginx下啟用https訪問的配置文件。 standalone模式申請ssl證書 standalone模式不需要上述梳理出的3個要點中的第三條,也就意味著如果主機需要關停80端口(或和443端口)的web服務,譬如正在運行的nginx、Apache需要關停。 ##standalone模式,其中-d參數(shù)指定擬申請ssl證書的域名 #可以通過多個-d參數(shù)指定多個域名,但你得確保這些指定的多個域名均能正常解析到當前主機
非standalone模式申請ssl證書 這種模式需要使用-w參數(shù)(或者–webroot-path參數(shù))指定當前正在運行的web服務器的根目錄。–webroot-path 參數(shù)指定web根目錄后,certbot工具會自動在該目錄下生成.well-known的隱藏目錄,以及用于效驗域名所有者的特定文件,此文件Let’s Encrypt的服務器會主動發(fā)起http請求去讀取從達到效驗域名所有者或者管理者就是本次操作certbot工具的人;certbot工具自動生成的完整目錄為:-w參數(shù)指定的根目錄/.well-known/acme-challenge,對于nginx而言web根目錄下的隱藏目錄默認情況下是不允許訪問的,所以nginx情況下再執(zhí)行非standalone模式申請ssl證書之前,需要將nginx網(wǎng)站根目錄下的.well-known隱藏目錄設置成允許訪問。 ##nginx對應主機的配置文件中添加允許.well-known隱藏目錄的訪問 #注意配置文件中禁止瀏覽隱藏文件的相關代碼引起沖突
如果熟悉nginx,甚至可以為.well-known隱藏目錄指定單獨的root入口;這就是nginx有關的合理利用了,不再補充。 給出命令的參考格式:
測試申請的截圖: 這樣在/etc/letsencrypt/live/你的域名作為目錄名的目錄這個目錄下會自動生成SSL證書私鑰和公匙,下圖所示: 4個pem文件,ssl里常見的證書文件,nginx用到fullchain.pem、privkey.pem這兩個文件,一個公鑰鏈,一個私鑰。也就是nginx中ssl_certificate指令指定的就是fullchain.pem,而ssl_certificate_key指令指定的就是privkey.pem,當然如果不做移動的話,需要是完整路徑,具體nginx配置就不墨跡了,關鍵的ssl證書和key都有了,就比較簡單了。 證書更新 Let’s Encrypt的證書有效期是90天,但Let’s Encrypt支持證書更新,到期前更新證書即可。certbot 提供了更新證書的命令cerbot renew,會自動更新所有已申請的SSL證書。 文章來源于https://www./wiki/22459.html |
|
來自: 拿破侖小子 > 《互聯(lián)網(wǎng)知識》