windows下 申請免費ssl證書的方法 (letsencrypt)


Let's Encrypt,官網是https://letsencrypt.org/,它是一個由各大公司贊助的公益組織;

有趨勢有需求,自然也有免費可用。免費的SSL證書中,首推就是Let's Encrypt。

 

這里介紹幾種免費的SSL證書申請方法:

 1、發錢辦理ssl證書,國內也有很多家這樣的平台,像景安、又拍雲等等,收費的,咋先不搞它;

 

 2、在服務端,注意是服務端,就是你iis的那台機器,使用windows power shell 執行命令來創建ssl證書

   2.1 找到power shell,可以直接搜索它,找不到的請度娘

   2.2 最好用管理員身份打開,然后查看power shell的版本,查看命令:get-host

   2.3 如果是5.0及以上的 執行命令:Install-Module -Name ACMESharp

   2.3  如果你的服務器PowerShell版本是3.0 or 4.0的則麻煩些,先需要在powershell上安裝chocolatey命令行包管理器,然后利用chocolatey安裝

          先執行:iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))

          在執行:choco install acmesharp-posh-all

          OK,ACMESharp安裝完畢我們來申請LE證書吧

   2.4 導入ACMESharp模塊

         執行:Import-Module ACMESharp

   2.5 初始化ACMEVault來保存和管理證書信息

         執行:Initialize-ACMEVault

   2.6 在LE填寫注冊信息,接受注冊協議

         執行:New-ACMERegistration -Contacts mailto:youremail@example.com -AcceptTos

         將youremail@example.com 替換你的郵箱

   2.7 創建一個你要申請域名身份

        執行 New-ACMEIdentifier -Dns myserver.example.com -Alias dns1

        myserver.example.com 請替換為你需要申請SSL證書的那個域名,  dns1 是別名,請替換為任意的一個別名,這個別名將用於后續申請中,用於代指你的域名。

   2.8  認證域名所有權,就是驗證一下這個域名是否在當前電腦訪問的通,let's Encrypt 提供了三種驗證方式:

          2.8.1 通過IIS來驗證,IIS如果是7.0及以上版本的,則可以通過驗證

                   執行:Complete-ACMEChallenge dns1 -ChallengeType http-01 -Handler iis -HandlerParameters @{ WebSiteRef = 'Default Web Site' }

                  其中'Default Web Site' 是IIS中這個Website的名稱

          2.8.2 通過在網站指定目錄下存放指定文件來驗證,文件中存放指定內容

          2.8.3 通過設置一個獨立的二級域名來驗證

         這里我們不過多描述方法2和方法3

         如需要 http://www.cnblogs.com/denny-duan/p/apply-free-ssl-ca-win7-powershell-letsencrypt.html 這個地址里面有詳細介紹

   2.9  提交認證

   執行:Submit-ACMEChallenge dns1 -ChallengeType http-01

   2.10  提交之后我們接下來就需要等待LE服務器來驗證了,我們可以通過命令查看狀態:

           執行:Update-ACMEIdentifier dns1

   pedding 正在等待驗證 
   valid 驗證通過 
   invalid 驗證失敗,如果驗證失敗,請查看對應的反饋的錯誤,一般都是無法訪問http://myserver.example.com/.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0  這個地址的文件,需要配置iis的mime類型,在mime類型中添加一個可以訪問沒有后綴名的文件類型,如下圖,詳情清查看 http://www.hangge.com/blog/cache/detail_1560.html 。  然后需要重新申請一次,也就是從2.7 再次開始

 

   2.11 如果返回valid表示驗證成功后我們繼續下一步 創建證書申請

          執行:New-ACMECertificate dns1 -Generate -Alias cert1

          執行:Submit-ACMECertificate cert1

          cert1 是你自己定義的證書名稱

   2.12 接下來,執行如下命令,更新證書

          執行:Update-ACMECertificate cert1

          

           可以看到證書的簽名算法是sha256RSA。至此,可以導出證書了

   2.13 下載證書文件

            下載私鑰:Get-ACMECertificate cert1 -ExportKeyPEM "c:\ssl\cert1.key.pem" 

            下載LE證書: Get-ACMECertificate cert1 -ExportCertificatePEM "c:\ssl\cert1.crt.pem" -ExportCertificateDER "c:\ssl\cert1.crt"  

            下載CA中間證書:Get-ACMECertificate cert1 -ExportIssuerPEM "c:\ssl\cert1-issuer.crt.pem" -ExportIssuerDER "c:\ssl\cert1-issuer.crt"

            下載IIS用的PFX文件 一個有密一個無密,選一個即可:

                       Get-ACMECertificate cert1 -ExportPkcs12 "c:\ssl\cert1.pfx"

                       Get-ACMECertificate cert1 -ExportPkcs12 "c:\ssl\cert1.pfx" -CertificatePassword '123456789'

            上面的地址需要先創建哦,要不找不到路徑保存,都執行后在對應的目錄里面可以看到下載的ssl文件了。

    2.14  下一步,將是安裝證書了。 再iis里面的證書服務 里面導入證書,綁定https的的即可,這不再細說;

 

  3  第三種方案,借住工具執行腳本命令,最快速,推薦使用

  3.1 下載一個letsencrypt-win-simple的工具

   這個地址有最新的版本和source: https://github.com/Lone-Coder/letsencrypt-win-simple/releases

   也可以用我雲盤地址,直接下載1.9.6的版本:http://pan.baidu.com/s/1nveHTlJ

    

  3.2 下載完之后解壓運行里面的letsencrypt.exe打開控制台窗口,第一次運行會提示你輸入一個郵箱以供后續使用

        輸入一個可用郵箱回車即開始注冊,並問你是否同意協議

        

       輸入Y回車,郵箱注冊完之后,程序會自動獲取當前服務器部署的所有網站,如下:

            

 

      按N  再按1, 再選擇要生成ssl的域名項即可,最后配置自動更新程序,選擇y

       生成的證書在C:\Users\Administrator\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org下

       

注意: 1 生成的計划任務的執行程序默認是生成證書時的letsencrypt.exe的路徑,請到管理工具-計划任務查看相應任務屬性,確認action的letsencrypt.exe路徑對不對,如果移動到 其它地方了也需要進行相應修改,否則會執行失敗

            2 iis需要配置mime類型:擴展名:.   mime類型:application/octet-stream,添加無后綴的文件訪問  ,否則驗證不通過,跟上面2.10 提到的是一樣的;

            3 由於Let's Encrypt免費SSL證書只有90天的有效期,過期需要更新,該程序會生成一個計划任務,每天上午9點鍾運行檢查過期的證書並更新。所以生成完成證書會提示你    是不是需要指定用戶運行刷新證書的計划任務(會顯示下次過期的時間),選擇Y,輸入相應的系統登錄用戶名和密碼即可。

 


免責聲明!

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



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