五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 免費(fèi)證書怎么申請(qǐng),windows+IIS部署免費(fèi)HTTPS的方法

免費(fèi)證書怎么申請(qǐng),windows+IIS部署免費(fèi)HTTPS的方法

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):2371    更新時(shí)間:2018-07-30 23:18   參與評(píng)論

這篇文章主要講述 IIS 8 部署免費(fèi) HTTPS 。 HTTPS 是互聯(lián)網(wǎng) web 大勢(shì)所趨。

  • 從 HTTP 到 HTTPS - 什么是 HTTPS

  • 從 HTTP 到 HTTPS - IIS 部署免費(fèi) HTTPS

  • 從 HTTP 到 HTTPS - 網(wǎng)站部署 HTTPS 中需要做的事情

有哪些免費(fèi)證書

這里只介紹在我部署 HTTPS 中嘗試的免費(fèi)證書方案,部署在 IIS8 上。

  • Let's Encrypt

  • 沃通 (wosign) (不推薦)

本來(lái)在遷移中嘗試部署過(guò)沃通 (wosign) 的簽發(fā)的免費(fèi)證書,但是后來(lái)發(fā)現(xiàn)了 Mozilla 官網(wǎng)( firefox/火狐 背后的開源組織 ) 里列出了 沃通的一系列可疑行為和問(wèn)題,并且沃通 "秘密" 收購(gòu) StartCom(著名的免費(fèi) HTTPS 證書 StartSSL 即其旗下產(chǎn)品)行為可疑, Mozilla 基金會(huì)正在考慮對(duì)沃通以及 StartCom 這兩個(gè) CA 機(jī)構(gòu)一年內(nèi)新簽發(fā)的所有 SSL 證書進(jìn)行封殺。

我在上一篇文章 《從 HTTP 到 HTTPS - 什么是 HTTPS》 中指出 CA 機(jī)構(gòu)應(yīng)該是是權(quán)威和可信的,但由于沃通當(dāng)前的陷入的一系列丑聞,信任度降低,所以暫時(shí)不推薦使用沃通。并且沃通官網(wǎng)已暫時(shí)關(guān)閉免費(fèi) HTTPS 證書申請(qǐng)。

所以我們這次僅推薦 Let's Encrypt。

Let's Encrypt

推薦 Let's Encrypt 理由:

  • 由 ISRG(Internet Security Research Group,互聯(lián)網(wǎng)安全研究小組)提供服務(wù),而 ISRG 是來(lái)自于美國(guó)加利福尼亞州的一個(gè)公益組織。Let's Encrypt 得到了 Mozilla、Cisco、Akamai、Electronic Frontier Foundation 和 Chrome 等眾多公司和機(jī)構(gòu)的支持,發(fā)展十分迅猛。

  • 極速申請(qǐng) - 只要認(rèn)證的網(wǎng)站通過(guò)驗(yàn)證,當(dāng)時(shí)即可頒發(fā)證書

  • 免費(fèi)和訪問(wèn)速度兼得

  • 對(duì)于域名所有權(quán)的驗(yàn)證,支持兩種方式:放臨時(shí)文件進(jìn)行驗(yàn)證、查詢 whois 給域名所有人發(fā)郵件驗(yàn)證

  • 無(wú)需注冊(cè)賬戶

  • 關(guān)鍵是穩(wěn)定,背后的支持的組織很強(qiáng)大

缺點(diǎn):

  • 一次只能頒發(fā)3個(gè)月有效期的證書,到期之后需要自己再續(xù)上 (仍然是免費(fèi)的),這點(diǎn)維護(hù)起來(lái)比較麻煩,不過(guò)我們可以使用工具自動(dòng)續(xù)期。

  • 不支持通配符泛域名 (*.365jz.com),所以在申請(qǐng)認(rèn)證是時(shí)候,要把域名都 301 跳轉(zhuǎn)到證書里包含的域名上,不然瀏覽器會(huì)彈證書錯(cuò)誤。

流程

默認(rèn) Let's Encrypt 申請(qǐng)證書比較繁瑣,所以我們?cè)?windows 下使用工具 letsencrypt-win-simple 進(jìn)行部署,簡(jiǎn)單方便快捷。

如果你覺得這樣還很麻煩的,請(qǐng)直接到本文的 自動(dòng)續(xù)訂 章節(jié),介紹了 certify 這個(gè)軟件,可以幫助你自動(dòng)申請(qǐng)、驗(yàn)證并且續(xù)訂證書。

  1. 下載 letsencrypt-win-simple

  2. 在服務(wù)器中打開CMD,運(yùn)行l(wèi)etsencrypt-win-simple

  3. 在CMD中根據(jù)簡(jiǎn)單的命令,輸入要認(rèn)證的網(wǎng)站域名和網(wǎng)站文件夾

  4. letsencrypt-win-simple 自動(dòng)驗(yàn)證域名所有權(quán)

  5. 驗(yàn)證通過(guò)后即時(shí)頒發(fā)證書

  6. 部署

使用 letsencrypt-win-simple 進(jìn)行自動(dòng)化認(rèn)證和部署

下載最新版 letsencrypt-win-simple

github - letsencrypt-win-simple

本人在2016年9月15日下到的最新版是:letsencrypt-win-simple.V1.9.1.zip。

自動(dòng)化認(rèn)證

在服務(wù)器解壓 letsencrypt-win-simple.V1.9.1 得到文件夾,打開CMD進(jìn)入到該文件夾下。

第一次運(yùn)行命令會(huì)連接遠(yuǎn)程服務(wù)器更新,并且會(huì)讓你是否輸入郵箱訂閱認(rèn)證信息,可以忽略,然后讓做個(gè)選擇(忘記什么選擇了),選擇Y即可,選擇N則會(huì)中斷。

部署單個(gè)域名

  • 輸入以下命令

      letsencrypt.exe --accepttos --manualhost 你的域名 --webroot 你的網(wǎng)站物理路徑(wwwroot路徑)
  • letsencrypt-win-simple.V1.9.1 會(huì)自動(dòng)生成臨時(shí)文件并放到網(wǎng)站根目錄,然后會(huì)讓 Let's Encrypt 服務(wù)器會(huì)訪問(wèn)這個(gè)文件, 用于驗(yàn)證這個(gè)網(wǎng)站是否屬于你。

  • 如果驗(yàn)證不通過(guò),是因?yàn)?IIS 需要修改一些配置,具體參見下文的詳細(xì)說(shuō)明。

  • 驗(yàn)證通過(guò)后會(huì)實(shí)時(shí)頒發(fā)證書,并且 letsencrypt-win-simple.V1.9.1 會(huì)自動(dòng)把證書添加到服務(wù)器中,然后直接在 IIS 中進(jìn)行HTTPS部署即可。

部署多個(gè)域名

  • 輸入命令 letsencrypt.exe --san

  • 輸入 M ,表示此次需要認(rèn)證多個(gè)域名

  • 輸入網(wǎng)站的 host

  • 輸入要認(rèn)證的多個(gè)域名,用 , 號(hào)分隔,比如365jz.com,www.365jz.com,m.365jz.com

  • 輸入網(wǎng)站物理路徑,比如 D:\wwwroot\365siteweb

  • letsencrypt-win-simple.V1.9.1 會(huì)自動(dòng)生成臨時(shí)文件并放到網(wǎng)站根目錄,然后會(huì)讓 Let's Encrypt 服務(wù)器會(huì)訪問(wèn)這個(gè)文件, 用于驗(yàn)證這個(gè)網(wǎng)站是否屬于你。

  • 如果驗(yàn)證不通過(guò),是因?yàn)?IIS 需要修改一些配置,具體參見下文的詳細(xì)說(shuō)明。

  • 驗(yàn)證通過(guò)后會(huì)實(shí)時(shí)頒發(fā)證書,并且會(huì)自動(dòng)把證書添加到服務(wù)器中,然后直接在 IIS 中進(jìn)行HTTPS部署即可。

更多命令文檔可以 參考這里。

自動(dòng)化認(rèn)證單個(gè)域名

解壓 letsencrypt-win-simple.V1.9.1 文件夾,然后點(diǎn)擊文件夾,按住shift,再點(diǎn)擊右鍵,選擇在此處打開命令窗口 (即讓控制臺(tái)打開后直接定位到這個(gè)文件夾下)。

使用下面的命令:

letsencrypt.exe --accepttos --manualhost 你的域名 --webroot 你的網(wǎng)站路徑(wwwroot路徑)

比如 https://365jz.com 部署的命令是這樣的:

letsencrypt.exe --accepttos --manualhost 365jz.com --webroot D:\wwwroot\365siteweb

letsencrypt-win-simple 會(huì)自動(dòng)生成臨時(shí)文件并放到網(wǎng)站根目錄 (詳情可以參考下一章節(jié) 自動(dòng)化認(rèn)證多個(gè)域名 ),然后會(huì)讓 Let's Encrypt 服務(wù)器會(huì)訪問(wèn)這個(gè)文件, 用于驗(yàn)證這個(gè)網(wǎng)站是否屬于你。

如果驗(yàn)證通過(guò),直接進(jìn)入本文的 部署 章節(jié)即可。如果驗(yàn)證不通過(guò),是因?yàn)樾枰薷?IIS 的一些配置,請(qǐng)參考下一章節(jié) 自動(dòng)化認(rèn)證多個(gè)域名。

自動(dòng)化認(rèn)證多個(gè)域名

CMD 進(jìn)入 letsencrypt-win-simple.V1.9.1 文件夾,運(yùn)行如下命令:

letsencrypt.exe --san

然后會(huì)彈出一坨選項(xiàng):

Let's Encrypt (Simple Windows ACME Client)
Renewal Period: 60
Certificate Store: WebHosting

ACME Server: https://acme-v01.api.letsencrypt.org/
Config Folder: C:\Users\linkFly\AppData\Roaming\letsencrypt-win-simple\htpsacme-v01.api.letsencrypt.org
Certificate Folder: C:\Users\linkFly\AppData\Roaming\letsencrypt-win-simpe\httpsacme-v01.api.letsencrypt.org
Loading Signer from C:\Users\linkFly\AppData\Roaming\letsencrypt-win-simpe\httpsacme-v01.api.letsencrypt.org\Signer

Getting AcmeServerDirectory
Loading Registration from C:\Users\linkFly\AppData\Roaming\letsencrypt-win-simple\httpsacme-v01.api.letsencrypt.org\Registration

Scanning IIS Sites
2: SAN - IIS 365jz (D:\wwwroot\365siteweb)
3: SAN - IIS Test (D:\wwwroot\Demo)

W: Generate a certificate via WebDav and install it manually.
S: Generate a single San certificate for multiple sites.
F: Generate a certificate via FTP/ FTPS and install it manually.
M: Generate a certificate manually.
A: Get certificates for all hosts
Q: Quit
Which host do you want to get a certificate for:

Scanning IIS Sites 列出了在 IIS 中檢測(cè)到的當(dāng)前已發(fā)布的網(wǎng)站,然后顯示了一系列指令 (W, S, F, M, A),決定你想要的操作:

  • W - 生成一個(gè)證書并通過(guò) WebDav 來(lái)進(jìn)行安裝

  • S - 給 IIS 當(dāng)前已經(jīng)發(fā)布的所有網(wǎng)站都部署一個(gè)證書

  • F - 生成一個(gè)證書通過(guò)FTP、FTPS安裝。

  • M - 通過(guò)配置手動(dòng)生成證書

  • A - 給 IIS 當(dāng)前已經(jīng)發(fā)布的所有網(wǎng)站各自部署上對(duì)應(yīng)的證書

我們這次要認(rèn)證手動(dòng)認(rèn)證多個(gè)域名,輸入命令:

M

接著出現(xiàn)讓你輸入host( Enter a host name )。 比如 http://365jz.com 輸入的是365jz.com。

然后會(huì)讓你輸入要認(rèn)證的多個(gè)域名 (注意這些域名要可以訪問(wèn)的,因?yàn)橐粫?huì)兒會(huì)輪流訪問(wèn)這些域名進(jìn)行驗(yàn)證),用,號(hào)分隔 (Enter all Alternative Names seperated by a comma:),然后我們輸入需要驗(yàn)證的域名即可:

365jz.com,theartemis.cn,m.365jz.com,wap.365jz.com

hostname

接著輸入站點(diǎn)部署的位置 (Enter a site path ),輸入你的網(wǎng)站部署的位置即可:

D:\wwwroot\365siteweb

hosts

然后輸入是否要指定使用者 (用戶),輸入 N。( 一旦選擇了Y,會(huì)讓你輸入用戶名和密碼,證書會(huì)進(jìn)行用戶認(rèn)證 )。

接著會(huì)在你此次認(rèn)證的項(xiàng)目根目錄下 (wwwroot) ,根據(jù)你剛才輸入的域名列表,生成對(duì)應(yīng)的臨時(shí)認(rèn)證文件, Let's Encrypt 服務(wù)器會(huì)訪問(wèn)這個(gè)文件,結(jié)構(gòu)大概如下:

---- wwwroot(認(rèn)證的網(wǎng)站根目錄)
| -- .well-known
    | -- acme-challenge
            | -- DGz4z_A_VsgO3dilCAB8bkgurpPt-EFpLygmua3L6x8 (一個(gè)臨時(shí)文件,多個(gè)域名會(huì)有多個(gè)臨時(shí)文件)

files

然后 Let's Encrypt 服務(wù)器會(huì)根據(jù)剛才輸入的域名列表,用 HTTP 輪流訪問(wèn)這些文件,注意這時(shí)候可能存在這個(gè)報(bào)錯(cuò):

******************************************************************************
The ACME server was probably unable to reach http://linkflys.com/.well-known/acme-challenge/DGz4z_A_VsgO3dilCAB8bkgurpPt

Check in a browser to see if the answer file is being served correctly.

*****************************************************************************

出現(xiàn)這個(gè)錯(cuò)誤表示生成的這個(gè)臨時(shí)文件訪問(wèn)不到,驗(yàn)證不通過(guò)。

原因是因?yàn)?nbsp;.well-know 這個(gè)文件夾帶了前綴.,IIS會(huì)認(rèn)為是不可識(shí)別的 MIMEType ,只需要在網(wǎng)站根目錄下臨時(shí)加上 mimeMap 配置即可:

<?xml version="1.0" encoding="UTF-8"?><configuration>
    <system.webServer>
        <staticContent>
            <mimeMap fileExtension="." mimeType="text/plain" />
        </staticContent>
    </system.webServer></configuration>

記得驗(yàn)證通過(guò)后,如果你的網(wǎng)站不需要這個(gè) mimeMap 配置,要記得刪除。

如果驗(yàn)證通過(guò),會(huì)顯示下圖,這時(shí)候恭喜你驗(yàn)證通過(guò)。

success

部署

打開 IIS,選擇對(duì)應(yīng)的網(wǎng)站,右鍵 編輯綁定,點(diǎn)擊 新增, 類型 選擇https,則會(huì)彈出如下界面:

iis

輸入要綁定的域名,然后選擇頒發(fā)的證書即可。域名 日期 上午/下午這種格式就是 Let's Encrypt 此次頒發(fā)的證書。

這個(gè)時(shí)候,使用 https 協(xié)議訪問(wèn)你的域名就可以啦,比如:https://365jz.com。

自動(dòng)續(xù)訂

2016-12-29 更新, 距我首次為 IIS 部署到近日,剛好滿了 90 天,今天發(fā)現(xiàn)自己的證書已經(jīng)過(guò)期,并且沒有自動(dòng)續(xù)訂,于是又小小了折騰了一下。

按照 letsencrypt-win-simple 項(xiàng)目中介紹的用法和查閱的一些資料, 使用:letsencrypt --renew 命令即可以自動(dòng)設(shè)立定時(shí)任務(wù)并自動(dòng)更新,詳情請(qǐng)參考這里 和 這里。

我執(zhí)行了這條命令,然而現(xiàn)在并沒有什么卵用,也沒有自動(dòng)續(xù)訂證書,查了半天也沒有查到原因,于是特意來(lái)分享另外一種方案。

在網(wǎng)上找到了一個(gè)自動(dòng)續(xù)訂的 GUI 軟件,叫做 certify,按照原作者的說(shuō)法是可以自動(dòng)配置、創(chuàng)建和自動(dòng)續(xù)訂證書,并且到快要續(xù)訂的時(shí)候會(huì)自動(dòng)發(fā)郵件給你。當(dāng)然,這里我也只能等三個(gè)月之后才能確認(rèn)是否如此。

首先先去 官網(wǎng)下載 certify ,然后在服務(wù)器上安裝。注意,certify 要求以管理員權(quán)限運(yùn)行,并且要求服務(wù)器安裝了 PowerShell 4.0。 PowerShell 4.0 默認(rèn)集成在 Windows Management Framework 4.0 中,而 Windows Management Framework 4.0 又依賴 Microsoft .NET Framework 4.5 (坑爹啊)。

可以查看下自己的服務(wù)器是否具備這些環(huán)境,然后按需更新即可。更新之后安裝 certify 運(yùn)行。

點(diǎn)擊 New Contact 按鈕,創(chuàng)建一個(gè)聯(lián)系人,這個(gè)聯(lián)系人會(huì)在證書快要過(guò)期的時(shí)候收到續(xù)訂證書的提醒郵件,輸入自己常用的 email 即可。

certify

然后點(diǎn)擊 New Certificate,certify 會(huì)自動(dòng)掃描 IIS 中的站點(diǎn),然后選擇你要申請(qǐng)證書的域名。

certify

點(diǎn)擊 Request Certificate 獲取證書,certify 會(huì)在網(wǎng)站根目錄下生成 .well-known 文件夾,并且會(huì)自動(dòng)配置 web.config,自動(dòng)驗(yàn)證證書。

驗(yàn)證完成后會(huì)彈窗顯示證書已安裝。然后你就可以看到自己已經(jīng)申請(qǐng)的證書詳細(xì)信息了,并且 IIS 中也已經(jīng)自動(dòng)給你配置好了證書。

certify

吐個(gè)槽,感覺這篇文章介紹的所有的東西,都被 certify 給搞定了...

在 certify 官網(wǎng)上作者說(shuō)這個(gè)軟件還出于 beta/alpha 階段,所以某些地方可能會(huì)出問(wèn)題,如果發(fā)現(xiàn)證書沒有續(xù)訂或者沒有生效,點(diǎn)擊一下 Auto Apply 就可以了。

最后記得把網(wǎng)站根目錄下的 .well-known 目錄給刪掉,保持網(wǎng)站目錄清潔。

查看證書

在服務(wù)器中查看證書

在服務(wù)器中,Win + R 打開運(yùn)行,輸入 MMC,打開 控制臺(tái) 界面。

點(diǎn)擊頂部菜單欄 文件,然后點(diǎn)擊 添加/刪除管理單元

彈出的窗口中,在左側(cè)的 可用的管理單元 中點(diǎn)擊 證書,然后點(diǎn)中間的 添加,會(huì)彈出如下界面:

certificate

選擇 計(jì)算機(jī)賬戶,然后默認(rèn)下一步完成,點(diǎn)擊 確定,即可看到證書列表。

展開 證書,再展開 中間證書頒發(fā)機(jī)構(gòu),選擇 證書,即可看到 Let's Encrypt 頒發(fā)的證書:

certificate

在chrome中查看證書

使用 HTTPS 訪問(wèn)網(wǎng)址,點(diǎn)擊地址欄的小 綠鎖,然后點(diǎn)擊 詳細(xì)信息,這時(shí)候會(huì)彈出 chrome 調(diào)試工具,點(diǎn)擊 View certificate

chrome certificate

就會(huì)看到證書的詳細(xì)信息:

chrome certificate

其他

IIS 配置 web.config 實(shí)現(xiàn)自動(dòng) HTTPS 跳轉(zhuǎn)

為了保證域名統(tǒng)一,將訪問(wèn) http://theartemis.cn、http://365jz.comhttps://www.365jz.com 的域名都跳轉(zhuǎn)到 https://365jz.com,IIS 可以進(jìn)行如下配置 (需要安裝 IIS UrlRewrite 模塊,代碼注釋是為了方便理解,部署到線上請(qǐng)刪除中文注釋):

<?xml version="1.0" encoding="UTF-8"?><configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="HostNameRule1">
                    <match url="(.*)" />
                    <!--匹配所有條件-->
                    <conditions logicalGrouping="MatchAny">
                        <!--當(dāng)不是使用https協(xié)議訪問(wèn)的時(shí)候-->
                        <add input="{HTTPS}" pattern="^OFF$" />
                        <!--并且訪問(wèn)的host不是365jz.com這種,例如theartemis.cn-->
                        <add input="{HTTP_HOST}" pattern="^365jz\.com$" negate="true" />
                    </conditions>
                    <!--跳轉(zhuǎn)到https-->
                    <action type="Redirect" url="https://365jz.com/{R:1}" />
                </rule>
                <rule name="HTTPS redirect">
                    <match url="(.*)" />
                    <conditions>
                        <!--當(dāng)使用HTTPS協(xié)議訪問(wèn)-->
                        <add input="{HTTPS}" pattern="^ON$" />
                        <!--當(dāng)訪問(wèn) http://theartemis.cn的時(shí)候 -->
                        <add input="{HTTP_HOST}" pattern="^365jz\.com$" negate="true" />
                    </conditions>
                    <!--跳轉(zhuǎn)到HTTPS-->
                    <action type="Redirect" url="https://365jz.com/{R:1}" redirectType="SeeOther" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer></configuration>

這里需要注意,想讓 https://www.365jz.com 也可以跳轉(zhuǎn)到 https://365jz.com,在申請(qǐng) HTTPS 證書的時(shí)候,要把 www.365jz.com 這種域名也給申請(qǐng)上,否則瀏覽器會(huì)解析不出 https://www.365jz.com,因?yàn)樵谶M(jìn)行 HTTPS 加密握手的時(shí)候就會(huì)認(rèn)證失敗。

chrome 調(diào)試中發(fā)現(xiàn) HTTPS 改動(dòng)不生效

HTTPS 第一次連接域名的時(shí)候會(huì)和證書頒發(fā)機(jī)構(gòu)進(jìn)行 HTTPS 證書認(rèn)證,后續(xù)的連接會(huì)緩存起來(lái),清緩存就好了

如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會(huì)為你解答?。?點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (2371人查看,0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)