HTTPS 證書(shū)配置

HTTPS 證書(shū)配置

現(xiàn)在阿里云和騰訊云都支持申請(qǐng) HTTPS 證書(shū),這里不再提,有需要的可自行g(shù)oogle解決方案。
本文主要介紹的是通過(guò) letsencrypt 申請(qǐng)免費(fèi)的HTTPS證書(shū),并將其配置在IIS WEB服務(wù)器上。

0. 申請(qǐng) HTTPS 證書(shū)

https://www.sslforfree.com/ 申請(qǐng)證書(shū),這里我以 http://sparktodo.weihanli.xyz/ 為例申請(qǐng)?jiān)O(shè)置

  1. 輸入要使用HTTPS的證書(shū)地址,生成證書(shū)及驗(yàn)證文件
0.png
  1. 驗(yàn)證域名

    驗(yàn)證域名支持三種方式,F(xiàn)TP ,文件驗(yàn)證,DNS驗(yàn)證

    1.png

    如果有FTP,推薦使用FTP驗(yàn)證,簡(jiǎn)單快捷;如果沒(méi)有FTP推薦使用文件驗(yàn)證,如果端口號(hào)不是80端口請(qǐng)使用DNS驗(yàn)證方式。

    2.png
    3.png

    這里以 文件驗(yàn)證 為例驗(yàn)證域名,點(diǎn)擊 “Manually Verify Domain”按鈕獲取驗(yàn)證文件,點(diǎn)擊下面的鏈接下載文件

    在網(wǎng)站根目錄下創(chuàng)建文件夾,并將驗(yàn)證文件放在里面

    windows 創(chuàng)建目錄:

    mkdir .well-known\acme-challenge
    

    linux 創(chuàng)建目錄:

    mkdir -p .well-known/acme-challenge
    

    如果你用的是IIS作為WebServer,那么還需要設(shè)置一下MIME類(lèi)型,具體方法如下:

    4.png
    5.png

    點(diǎn)擊下面的驗(yàn)證鏈接,如果沒(méi)有錯(cuò)誤就證明已經(jīng)驗(yàn)證通過(guò)可以直接下載證書(shū)

    【asp.net core項(xiàng)目需要另外設(shè)置】
    針對(duì) asp.net core項(xiàng)目,我們需要將創(chuàng)建的文件放在 wwwroot 目錄下,并且在程序中添加對(duì)沒(méi)有擴(kuò)展名的文件的支持,
    添加對(duì)沒(méi)有擴(kuò)展名的文件的支持的代碼如下:

    StartUp 中的 Configure 方法中配置

            app.UseStaticFiles(new StaticFileOptions()
            {
                ServeUnknownFileTypes = true
            });
    
  2. 下載

6.png
驗(yàn)證通過(guò)之后下載我們的證書(shū),下載之后會(huì)是一個(gè)包含三個(gè)文件的壓縮包,三個(gè)文件中有兩個(gè)crt和一個(gè)private key,
這可能并不是你想到的證書(shū)格式,那么你需要轉(zhuǎn)換證書(shū)格式,如果你使用 IIS 作為WebServer,windows 不識(shí)別 private key,所以需要把證書(shū)合成一個(gè) *.pfx 的證書(shū)

1. 證書(shū)格式轉(zhuǎn)換

下載的證書(shū)可能并不是你需要的格式,建議下載 openssl 進(jìn)行轉(zhuǎn)換,如果是linux系統(tǒng),那會(huì)比較容易直接從官網(wǎng)下載。

  1. 下載openssl

    如果是windows系統(tǒng)可能會(huì)有一些繁瑣,官方不提供windows版的,從這里下載windows版openssl

    下載并安裝好之后,建議配置系統(tǒng)環(huán)境以更方便的使用

  2. 轉(zhuǎn)換證書(shū)格式

    • 轉(zhuǎn)換為 *.pfx 格式

      openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.pfx
      

      執(zhí)行命令會(huì)提示你輸入密碼,輸入之后會(huì)要求確認(rèn)一下密碼(無(wú)回顯),密碼在導(dǎo)入證書(shū)時(shí)會(huì)用到

      7.png
- 轉(zhuǎn)換為 *.pem 格式

    ```
    openssl rsa -in private.key -text > private.pem
    ```

2. WEB服務(wù)器配置 HTTPS 證書(shū)

這里以 IIS 部署為例,更多web服務(wù)器配置HTTPS請(qǐng)參考https://www.wosign.com/Docdownload/index.htm

雙擊*.pfx證書(shū)文件即可導(dǎo)入證書(shū),按提示導(dǎo)入證書(shū)即可,導(dǎo)入成功之后,配置IIS Web服務(wù)器:

8.png

配置 HTTP 自動(dòng)轉(zhuǎn)換為 HTTPS,可參考以下解決方案:

最好的解決方案是在代碼里配置,如果是 HTTP 就重定向到 HTTPS

我的配置方式是這樣的:

  1. 要求 SSL
9
10.png
  1. 自定義錯(cuò)誤頁(yè)面
11.png

3. Summary

生活處處是驚喜,轉(zhuǎn)角遇到坑。

寫(xiě)這篇文章的時(shí)候,第一次配置主要是 openssl 的安裝搞了好長(zhǎng)時(shí)間,第二次配置比第一次順利一些,但是也遇到了新的問(wèn)題,第一次配置的是一個(gè)ASP.NET項(xiàng)目,第二次是一個(gè)ASP.NET Core項(xiàng)目,第二次文件驗(yàn)證不成功,后來(lái)修改了代碼之后終于可以了,第二次還配置了強(qiáng)制HTTPS,第一次的項(xiàng)目配置的是前臺(tái)功能允許使用HTTP,但是后臺(tái)功能要求必須是HTTPS,第二次是全站HTTPS。

如果看完還有什么問(wèn)題或者覺(jué)得文章有什么問(wèn)題,歡迎指出,歡迎聯(lián)系我 weihanli@outlook.com

生命不息,踩坑不止。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • nginx https證書(shū)配置 一 前言 此文檔針對(duì)于nginx配置反向代理使用https證書(shū)方法 nginx作為...
    陽(yáng)光_8af8閱讀 732評(píng)論 0 4
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評(píng)論 19 139
  • HTTPS介紹 超文本傳輸安全協(xié)議(英語(yǔ):Hypertext Transfer Protocol Secure,縮...
    齊滇大圣閱讀 9,212評(píng)論 8 96
  • 本文部分摘錄于 SSL Shopper,這里提供了大量有價(jià)值的信息。 一、證書(shū)標(biāo)準(zhǔn) 1、X.509這是一種證書(shū)標(biāo)準(zhǔn)...
    舌尖上的大胖閱讀 10,807評(píng)論 0 11
  • 2017.11.28 星期二 晴 親子日記第31天 今天兒子在家繼續(xù)陪我,女兒上學(xué)走后 ,兒子就憋不住了。就嚷嚷...
    芳香四季閱讀 190評(píng)論 0 0

友情鏈接更多精彩內(nèi)容