使用XCA自制CA證書並簽發https證書

序言

本文目的是使公司內網部署的Web可以使用https的方式訪問
現有部署的系統有用域名訪問,有用IP訪問,但都是用http的方式
所以打算在公司內網部署統一的CA證書,並可以自己簽發對應的域名和IP證書
使得可以用https的方式訪問各Web系統

工具下載

XCA下載地址
Github:https://github.com/chris2511/xca

第一步,創建XCA數據庫,這樣所有的XCA數據都保存在這個文件裏面。

創建了數據庫後,就默認打開了這個文件

接下來我們在“私鑰”界面要創建一個密鑰

在“證書”界面創建CA證書

在“主體”頁籤,修改個性化信息

在“擴展”頁籤,主要配置證書的類型與時間

在“密鑰用法”主要配置證書的用途

點確定後,在證書界面就創建了一個CA證書

第二步:把CA證書導出,然後導入到其它內網的所有電腦,以後這個CA簽發的所有證書就都會自動信任

導出CA證書爲crt文件,如果是andorid等移動設備,可以選擇導出爲cer類型文件

把證書導入到Windows,服務器與客戶端都要導入此CA證書
在開始“運行”裏面輸入mmc,打開windows管理控制檯

在“證書-->受信用的根證書頒發機構-->證書”下面點右鍵,選擇導入

其它電腦同樣按此操作,也可以雙擊crt文件導入,
主要是導入的位置一定是要在”受信用的根證書頒發機構“下面

第三步,使用CA證書籤發域名與IP證書

我們簽發一個證書,同時支持
IP:10.76.99.18
泛域名:*.liuju.cc

先在”私鑰“這裏創建一個*.liuju.cc的私鑰

在”證書“頁籤,創建簽名證書,
使用原來創建的CA進行簽名
模板選擇TLS_Server

在”主體“頁籤,配置好對應數據,選擇新創建的私鑰

在”擴展“頁籤裏配置好證書的屬性
類型爲”最終實體“,有效期,
最主要的是配置 X509v3 Subject Alternative Name
這個主要就是我們要簽名幹什麼的,
如果是域名,我們就寫DNS:域名,
如果是泛域名,我們也寫DNS,通用的地方用
比如
.liuju.cc 這樣這個證書所有的以liuju.cc的域名都可以用
比如 www.liuju.cc,blog.liuju.cc都可以用這一個證書
如果是IP的類型,就寫IP地址
如果:IP:10.76.99.18

在”密鑰用法“頁籤,我們選擇對應的類型,點OK後創建成功

第四步,導出簽名證書,並導入至使用的服務器上

導出的類型要選擇PKCS #12 chain(*.pfx)類型,這樣會把對應的加密私鑰也一同導出
在對應服務器安裝後,纔會有對應的私鑰
導出pfx文件的時候,會要求輸入密碼,因爲有私鑰,所以要用密碼保護
在對應服務器導入的時候,要輸入這個密碼才能導入成功

把文件複製到對應服務器,
然後雙擊_.liuju.cc.pfx
會顯示證書導入嚮導
按嚮導的提示下一步就可以

選擇證書的存儲位置,CA證書我們要選擇是”受信任的根證書頒發機構“
但是簽名證書,我們可以讓嚮導選擇”根據證書類型,自動選擇證書存儲“
如果是簽名證書,自動選擇一般就是會導入到”個人“下面

這樣我們在IIS裏就可以新增加綁定https
輸入對應的主機名,如:test.liuju.cc
並選擇才導入的證書
當然這個域名我還沒有通過DNS服務器解析到服務器
我們可以先在windows裏修改一下host做本地解析

當然實際可以到域名提供商那裏把對應DNS解析正確,效果是一樣的

這樣我們在客戶端訪問的時候,就是正常https訪問了

同樣,我們那個簽名證書不也同樣設置了IP也可以用嗎
我們可以這樣設置IIS,把對應IP也綁定爲https
如下圖這樣

這樣我們同樣在客戶端電腦用https的方式訪問這個IP地址也是正常的
如下圖所示

我們也可以看到這個證書在客戶端的信息

至此,我們在內網用自己製做的CA證書,並給內網服務器的泛域名和IP簽發證書就已經成功完成了
如果後繼要給其它應用簽發證書的話,
就只要重複上面的第三步就可以了。並在服務器導入就可以了。
當然前提是服務器和客戶端都要導入CA證書
後續簽名的證書只用在服務器端導入,不用在客戶端導入。
因爲客戶端已經信任了CA證書,那麼所有此CA簽發的證書都是可以信任的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章