局域網內多臺機器使用自簽發證書架設https網站的設置方法
https總是與數字證書聯系在一起。所謂的https,就是采用了SSL協議的http。SSL協議負責加密通信,采用對稱加密。但采用哪種加密方法,密鑰如何,并不是固定的,而是在客戶端與服務器建立連接之初協商產生的。這個協商步驟,采用了非對稱加密。非對稱加密,就牽扯到公鑰私鑰。私鑰自己保管,公鑰呢?客戶端與服務器如何能保證收到的公鑰就是對方提供的?這里就要用到數字證書了。數字證書,負責身份驗證,公鑰就放在數字證書里。
然而新的問題又來了。誰來保證數字證書的真偽?答案是權威機構,由他們簽發的數字證書有權威性。但權威機構頒發的證書需要購買,好像還很貴,我們在開發階段,或者局域網內,采用自簽發證書即可。
自簽發證書怎么用呢?步驟是這樣的:
1、以一臺機器作為根證書服務器(其實就是CA),負責生成根證書 2、所有網站的證書,都由這張根證書來簽發 3、客戶端導入這張根證書到自己的“受信任的根證書頒發機構”里
為什么網站用自簽發證書,客戶端也要安裝證書呢?你看我們訪問互聯網上的一些著名站點,都是https,但我們啥證書都不用,就能很順暢的打開。這是因為,大網站都采用了權威機構頒發的證書,瀏覽器有一個名單,所以我們無須多做些什么。而自簽發證書的話,沒有權威性,客戶端不認,需要手動將根證書安裝到自己機器上的“受信任的根證書頒發機構”里。由于網站證書就是由這個根證書簽發的,這樣客戶端才會認可、信任網站證書,訪問得以順利進行。
生成網站證書
https數字證書制作工具itisscg.exe
這是一個用.NET開發的證書生成工具,圖形界面。這個工具小巧玲瓏,只有200多K,需要.NET4.6的支持。
目前官網不可訪問,可到CSDN資源頁進行下載:
https://down.365jz.com/24898.html
1)輸入subject 和 subject alternative name,存儲位置為本機(區別于當前用戶)
2)
選擇根證書進行簽發
3)
我的情況是,網站跟CA不是同一臺機,簽發的網站證書沒必要裝在CA這臺機器上,因此將證書輸出到文件里,同時刪掉本機存儲的這個證書。估計它的流程是不管3721,都要先生成到本機證書存儲區域。
然后將這個證書文件,拷到網站服務器,導入到 “本機”的“個人證書”,然后在IIS里與網站的https綁定即可。方法為:
運行 mmc 命令
添加證書管理單元
鼠標右鍵,導入網站證書。
然后在IIS里綁定
本來雙擊這個證書文件,也能安裝證書。但安裝的路徑是“當前賬號”而不是“本機”,IIS貌似是訪問“本機”,“當前賬號”下的證書它看不到。
三、客戶端導入根證書
將根證書文件拷貝到客戶端機器,在“本機”的“受信任的根證書頒發機構” 里導入即可。
完成以上3個步驟,已經大功告成。但是,開發階段,一個網站往往需要多張證書:
四、網站多張證書
依我看,開發過程中,一個網站往往有兩張以上的證書。為什么這么說呢?我們開發的時候,訪問本機的網站,一般都用localhost,而別人訪問我們,肯定要用IP。雖然證書里的subject alternative name 支持多個域名和IP,但如果是localhost與IP混在一起的話,谷歌瀏覽器支持,IE又不干了,它會警告說這張證書是頒布給別的網站的。所以localhost要與IP分開成兩張證書。
相應地,https要分開綁定:
如對本文有疑問,請提交到交流論壇,廣大熱心網友會為你解答??! 點擊進入論壇