文章出處

HTTPS 證書配置

現在阿里云和騰訊云都支持申請 HTTPS 證書,這里不再提,有需要的可自行google解決方案。 本文主要介紹的是通過 letsencrypt 申請免費的HTTPS證書,并將其配置在IIS WEB服務器上。

0. 申請 HTTPS 證書

https://www.sslforfree.com/ 申請證書,這里我以 http://sparktodo.weihanli.xyz/ 為例申請設置

  1. 輸入要使用HTTPS的證書地址,生成證書及驗證文件

     

  2. 驗證域名

    驗證域名支持三種方式,FTP ,文件驗證,DNS驗證

     

    如果有FTP,推薦使用FTP驗證,簡單快捷;如果沒有FTP推薦使用文件驗證,如果端口號不是80端口請使用DNS驗證方式。

     

     

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

    在網站根目錄下創建文件夾,并將驗證文件放在里面

    windows 創建目錄:

    mkdir .well-known\acme-challenge
    

    linux 創建目錄:

    mkdir -p .well-known/acme-challenge
    

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

     

     

    點擊下面的驗證鏈接,如果沒有錯誤就證明已經驗證通過可以直接下載證書

    【asp.net core項目需要另外設置】 針對 asp.net core項目,我們需要將創建的文件放在 wwwroot 目錄下,并且在程序中添加對沒有擴展名的文件的支持, 添加對沒有擴展名的文件的支持的代碼如下:

    StartUp 中的 Configure 方法中配置

    1         app.UseStaticFiles(new StaticFileOptions()
    2         {
    3             ServeUnknownFileTypes = true
    4         });

     

  3. 下載

     

    驗證通過之后下載我們的證書,下載之后會是一個包含三個文件的壓縮包,三個文件中有兩個crt和一個private key, 這可能并不是你想到的證書格式,那么你需要轉換證書格式,如果你使用 IIS 作為WebServer,windows 不識別 private key,所以需要把證書合成一個 *.pfx 的證書

1. 證書格式轉換

下載的證書可能并不是你需要的格式,建議下載 openssl 進行轉換,如果是linux系統,那會比較容易直接從官網下載。

  1. 下載openssl

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

    下載并安裝好之后,建議配置系統環境以更方便的使用

  2. 轉換證書格式

    • 轉換為 *.pfx 格式

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

      執行命令會提示你輸入密碼,輸入之后會要求確認一下密碼(無回顯),密碼在導入證書時會用到

       

    • 轉換為 *.pem 格式

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

2. WEB服務器配置 HTTPS 證書

這里以 IIS 部署為例,更多web服務器配置HTTPS請參考證書配置(https://www#wosign#com/Docdownload/index.htm)[將#替換為.]

雙擊*.pfx證書文件即可導入證書,按提示導入證書即可,導入成功之后,配置IIS Web服務器:

 

配置 HTTP 自動轉換為 HTTPS,可參考以下解決方案:

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

我的配置方式是這樣的:

  1. 要求 SSL

 

 

  1. 自定義錯誤頁面

 

3. Summary

生活處處是驚喜,轉角遇到坑。

寫這篇文章的時候,第一次配置主要是 openssl 的安裝搞了好長時間,第二次配置比第一次順利一些,但是也遇到了新的問題,第一次配置的是一個ASP.NET項目,第二次是一個ASP.NET Core項目,第二次文件驗證不成功,后來修改了代碼之后終于可以了,第二次還配置了強制HTTPS,第一次的項目配置的是前臺功能允許使用HTTP,但是后臺功能要求必須是HTTPS,第二次是全站HTTPS。

如果看完還有什么問題或者覺得文章有什么問題,歡迎指出,歡迎聯系我 weihanli@outlook.com

生命不息,踩坑不止。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()