HTTPS 证书配置
HTTPS 證書配置
現(xiàn)在阿里云和騰訊云都支持申請(qǐng) HTTPS 證書,這里不再提,有需要的可自行g(shù)oogle解決方案。 本文主要介紹的是通過 letsencrypt 申請(qǐng)免費(fèi)的HTTPS證書,并將其配置在IIS WEB服務(wù)器上。
0. 申請(qǐng) HTTPS 證書
在 https://www.sslforfree.com/ 申請(qǐng)證書,這里我以 http://sparktodo.weihanli.xyz/ 為例申請(qǐng)?jiān)O(shè)置
輸入要使用HTTPS的證書地址,生成證書及驗(yàn)證文件
?
驗(yàn)證域名
驗(yàn)證域名支持三種方式,FTP ,文件驗(yàn)證,DNS驗(yàn)證
?
如果有FTP,推薦使用FTP驗(yàn)證,簡(jiǎn)單快捷;如果沒有FTP推薦使用文件驗(yàn)證,如果端口號(hào)不是80端口請(qǐng)使用DNS驗(yàn)證方式。
?
?
這里以 文件驗(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-challengelinux 創(chuàng)建目錄:
mkdir -p .well-known/acme-challenge如果你用的是IIS作為WebServer,那么還需要設(shè)置一下MIME類型,具體方法如下:
?
?
點(diǎn)擊下面的驗(yàn)證鏈接,如果沒有錯(cuò)誤就證明已經(jīng)驗(yàn)證通過可以直接下載證書
【asp.net core項(xiàng)目需要另外設(shè)置】 針對(duì) asp.net core項(xiàng)目,我們需要將創(chuàng)建的文件放在 wwwroot 目錄下,并且在程序中添加對(duì)沒有擴(kuò)展名的文件的支持, 添加對(duì)沒有擴(kuò)展名的文件的支持的代碼如下:
在 StartUp 中的 Configure 方法中配置
1 app.UseStaticFiles(new StaticFileOptions() 2 { 3 ServeUnknownFileTypes = true 4 });?
下載
?
驗(yàn)證通過之后下載我們的證書,下載之后會(huì)是一個(gè)包含三個(gè)文件的壓縮包,三個(gè)文件中有兩個(gè)crt和一個(gè)private key, 這可能并不是你想到的證書格式,那么你需要轉(zhuǎn)換證書格式,如果你使用 IIS 作為WebServer,windows 不識(shí)別 private key,所以需要把證書合成一個(gè) *.pfx 的證書
1. 證書格式轉(zhuǎn)換
下載的證書可能并不是你需要的格式,建議下載 openssl 進(jìn)行轉(zhuǎn)換,如果是linux系統(tǒng),那會(huì)比較容易直接從官網(wǎng)下載。
下載openssl
如果是windows系統(tǒng)可能會(huì)有一些繁瑣,官方不提供windows版的,從這里下載windows版openssl
- 64位系統(tǒng)推薦下載這個(gè):https://slproweb.com/download/Win64OpenSSL_Light-1_1_0e.exe
- 32位系統(tǒng)推薦下載這個(gè):https://slproweb.com/download/Win32OpenSSL_Light-1_1_0e.exe
下載并安裝好之后,建議配置系統(tǒng)環(huán)境以更方便的使用
轉(zhuǎn)換證書格式
-
轉(zhuǎn)換為 *.pfx 格式
openssl pkcs12 -export -in certificate.crt -inkey private.key -out certificate.pfx執(zhí)行命令會(huì)提示你輸入密碼,輸入之后會(huì)要求確認(rèn)一下密碼(無回顯),密碼在導(dǎo)入證書時(shí)會(huì)用到
?
-
轉(zhuǎn)換為 *.pem 格式
openssl rsa -in private.key -text > private.pem
2. WEB服務(wù)器配置 HTTPS 證書
這里以 IIS 部署為例,更多web服務(wù)器配置HTTPS請(qǐng)參考證書配置(https://www#wosign#com/Docdownload/index.htm)[將#替換為.]
雙擊*.pfx證書文件即可導(dǎo)入證書,按提示導(dǎo)入證書即可,導(dǎo)入成功之后,配置IIS Web服務(wù)器:
?
配置 HTTP 自動(dòng)轉(zhuǎn)換為 HTTPS,可參考以下解決方案:
- http://stackoverflow.com/questions/46347/iis7-http-https-cleanly
- https://blogs.msdn.microsoft.com/kaushal/2013/05/22/http-to-https-redirects-on-iis-7-x-and-higher/
最好的解決方案是在代碼里配置,如果是 HTTP 就重定向到 HTTPS
我的配置方式是這樣的:
?
?
?
3. Summary
生活處處是驚喜,轉(zhuǎn)角遇到坑。
寫這篇文章的時(shí)候,第一次配置主要是 openssl 的安裝搞了好長(zhǎng)時(shí)間,第二次配置比第一次順利一些,但是也遇到了新的問題,第一次配置的是一個(gè)ASP.NET項(xiàng)目,第二次是一個(gè)ASP.NET Core項(xiàng)目,第二次文件驗(yàn)證不成功,后來修改了代碼之后終于可以了,第二次還配置了強(qiáng)制HTTPS,第一次的項(xiàng)目配置的是前臺(tái)功能允許使用HTTP,但是后臺(tái)功能要求必須是HTTPS,第二次是全站HTTPS。
如果看完還有什么問題或者覺得文章有什么問題,歡迎指出,歡迎聯(lián)系我 weihanli@outlook.com
生命不息,踩坑不止。
總結(jié)
以上是生活随笔為你收集整理的HTTPS 证书配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机nat固定IP上网配置
- 下一篇: [转]json2.js 源码解读