windows server2008R2申請免費let's encrypt認證

來源:互聯網
上載者:User

標籤:lets encrypt   powershell   windows   https   

Let’s Encrypt 項目(https://letsencrypt.org/)是由互連網安全研究小組ISRG,Internet Security Research Group主導並開發的一個新型數位憑證認證機構CA,Certificate Authority。該項目旨在開發一個自由且開放的自動化 CA 套件,並向公眾提供相關的認證免費簽發服務以降低安全通訊的財務、技術和教育成本。在過去的一年中,互連網安全研究小組擬定了 ACME 協議草案,並首次實現了使用該協議的應用套件:服務端 Boulder 和用戶端 letsencrypt。

目前LE的認證已經獲得了所有瀏覽器的信任了(XP也可以支援了),在瀏覽器地址欄都會顯示一個綠色可信任標誌,認證90天有效期間我們安裝後需要定時任務每月續簽一次認證就好了。

以前都是在linux上部署lets encrypt,很方便直接yum certbot-auto就可以了,今天需要部署的是一台windows server2008R2+IIS7.5。首先我使用的是:

ACMESharp:https://github.com/ebekker/ACMESharp

ACMESharp安裝方式有兩種:

  1. 如果你的伺服器PowerShell版本是5.0以上,以管理員權限運行開啟PowerShell執行:

PS> Install-Module -Name ACMESharp

來安裝ACMESharp,安裝過程需要看網路情況,伺服器有條件的用vpn安裝,沒條件的多嘗試幾次。 
    2. 如果你的伺服器PowerShell版本是3.0 or 4.0的則麻煩些,先需要在powershell上安裝chocolatey命令列包管理器,然後利用chocolatey安裝。 
在powershell中執行:

PS> iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1‘))

來安裝chocolatey命令列包管理器,然後執行:

PS> choco install acmesharp-posh-all

首先你要確實自己的powershell是什麼版本的,這裡直接管理員運行powershell輸入:

   PS> get-host      Name          : ConsoleHostVersion       : 5.1.14393.1532InstanceId     : 1e00ccb9-a961-4c81-89ed-b22bc1f280c4UI           : System.Management.Automation.Internal.Host.InternalHostUserInterfaceCurrentCulture  : zh-CNCurrentUICulture : zh-CNPrivateData    : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxyDebuggerEnabled  : TrueIsRunspacePushed : FalseRunspace       : System.Management.Automation.Runspaces.LocalRunspace

這個是我自己windows10的運行結果,從Version可以看到版本,windows server2008R2的版本是2.0的,為了方便安裝我準備升級powershell。

升級簡單就三步:

1、安裝.NET Framework 4.6.2,下載NDP462-KB3151800-x86-x64-AllOS-ENU.exe,安裝。

2、安裝PowerShell 4.0(5.0依賴4.0),下載Windows6.1-KB2819745-x64-MultiPkg.msu,安裝。

3、安裝PowerShell 5.0,下載Win7AndW2K8R2-KB3134760-x64.msu,安裝。

重啟伺服器完成升級。


ACMESharp安裝完畢我們來申請LE認證吧:

管理員身份開啟PowerShell

第一步:匯入ACMESharp模組

PS> Import-Module ACMESharp

在這裡出現錯誤,無法運行指令碼,提示系統禁止,解決辦法:

因為powershell的預設安全設定禁用了執行指令碼,要啟用這個功能需要擁有管理員的許可權。

開啟:set-executionpolicy remotesigned

關閉:Set-ExecutionPolicy Restricted


第二步:初始化ACMEVault來儲存和管理憑證資訊

PS> Initialize-ACMEVault

第三步:在LE填寫註冊資訊,接受註冊協議

PS> New-ACMERegistration -Contacts mailto:[email protected] -AcceptTos

第四步:建立一個你要申請網域名稱身份

PS> New-ACMEIdentifier -Dns myserver.example.com -Alias dns1

第五步:認證網域名稱所有權

如果是IIS web伺服器執行:

PS> Complete-ACMEChallenge dns1 -ChallengeType http-01 -Handler iis -HandlerParameters @{ WebSiteRef = ‘Default Web Site‘ }

如果是其它web伺服器,比如nginx需要自己配置的執行:

PS> Complete-ACMEChallenge dns1 -ChallengeType http-01 -Handler manual== Manual Challenge Handler - HTTP ==  * Handle Time:      [1/12/2016 1:16:34 PM]  * Challenge Token:  [2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0]To complete this Challenge please create a new fileunder the server that is responding to the hostnameand path given with the following characteristics:  * HTTP URL:     [http://myserver.example.com/.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0]  * File Path:    [.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0]  * File Content: [2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0.H3URk7qFUvhyYzqJySfc9eM25RTDN7bN4pwil37Rgms]  * MIME Type:    [text/plain]  ------------------------------------

執行完畢之後看返回結果LE的伺服器在執行下一步時會訪問你的這個地址:

http://myserver.example.com/.well-known/acme-challenge/2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0

返回的常值內容是:

2yRd04TwqiZTh6TWLZ1azL15QIOGaiRmx8MjAoA5QH0.H3URk7qFUvhyYzqJySfc9eM25RTDN7bN4pwil37Rgms

.well-known檔案夾在windows下可能不能直接建立,需要在命令列下建立。

如果準備好了,我們繼續下一步。

第六步:提交認證

PS> Submit-ACMEChallenge dns1 -ChallengeType http-01

提交之後我們接下來就需要等待LE伺服器來驗證了,我們可以通過命令:

PS> Update-ACMEIdentifier dns1...Status         : valid...

來檢查驗證狀態: 
pedding 正在等待驗證 
valid 驗證通過 
invalid 驗證失敗,如果驗證失敗需要重新申請一次

我做到這裡死活都是invalid,當時心想沒辦法了各種IIS的許可權配置都試完了,之後突然想起以前儲存的一個網站裡面有所有lets encrypt的部署工具(https://letsencrypt.org/docs/client-options/),找了個windows的部署工具還帶gui的

Certify SSL Manager

Home page for downloads and info : https://certifytheweb.com/650) this.width=650;" src="https://camo.githubusercontent.com/8683b3c1a3cc120885e0fef3e39bacef05641293/68747470733a2f2f636572746966797468657765622e636f6d2f696d616765732f73637265656e332e706e67" alt="App Screenshot" />

直接對接IIS7.0以上,一鍵就部署好https了!!簡直不要太爽~~終於找到一個windows下的lets encrypt部署利器了!!

本文出自 “Technology Way” 部落格,謝絕轉載!

windows server2008R2申請免費let's encrypt認證

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.