核發自己的SSL憑證

如果覺得這篇文章對您有所幫助,在觀看完文章之餘,希望能點選下方方廣告,當作是對YOGO的支持,讓YOGO更有寫作的動力。

有時候開發有關SSL的網頁時,需要安裝憑證才能夠執行,但是開發階段又不可能去申請個正式憑證來安裝(況且申請憑證是要錢的)。在這樣的狀況下,如果您開發的作業系統是Windows Server的作業系統的話,可以安裝憑證服務,然後自己核發一份憑證給自己,這樣就能夠進行相關程式的開發了,若你的作業系統非Windows Server系列的話,也可以透過OpenSSL去產生SSL憑證,其相關步驟如下。

安裝憑證授權單位(CA)

因為不想花錢或是只在內部使用的Web 站台,想要使用SSL的功能,就必須自己成為憑證授權單位,自己發憑證給自己的網站使用。

.電腦名稱與CA有很大的關連,建議先將電腦名稱更改為叫有意義的名字
.先想好要IIS中的哪一個站台成為SSL的站台
.安裝CA的步驟:控制台/新增或移除程式/新增移除Windows元件/Certificate Services
.安裝完畢後會在IIS的預設的網站中建立CertSrv,CertControl,CertEnroll等三個虛擬目錄

產生憑證要求

1.啟動 IIS Microsoft Management Console (MMC) 嵌入式管理單元。
2.展開網頁伺服器名稱,並選取要安裝憑證的網站。
3.在網站上按一下滑鼠右鍵,再按 [內容]。
4.按一下 [目錄安全設定] 索引標籤。
5.在 [安全通訊] 中按一下 [伺服器憑證] 按鈕,以啟動 [Web 伺服器憑證精靈]。

注意:如果無法使用 [伺服器憑證],可能是因為您已選取虛擬目錄、目錄或檔案。請返回步驟 2 並選取網站。

6.按 [下一步],以跳過 [歡迎使用] 對話方塊。
7.按一下 [建立新憑證],再按 [下一步]。
8.對話方塊中有下列兩個選項:

• 準備要求,但於稍後傳送, 此選項始終可用。

• 立即傳送要求到線上憑證授權
僅當網頁伺服器能夠存取設定成發行網頁伺服器憑證之 Windows 2000 網域中的一或多個「Microsoft 憑證」伺服器時,此選項才可用。稍後在要求的過程中,您會有機會從清單中選取要向其傳送要求的授權單位。

按一下 [準備要求,但於稍後傳送],再按 [下一步]。

9.在 [名稱] 欄位中鍵入憑證的描述性名稱,並在 [位元長度] 欄位中鍵入金鑰的位元長度,再按 [下一步]。

精靈會使用目前網站的名稱作為預設名稱。它並非用於憑證,而是充當協助系統管理員的易記名稱。

10.在 [組織] 欄位中鍵入組織名稱 (如 Contoso),並在 [組織單位] 欄位中鍵入組織單位 (如「銷售部門」),再按 [下一步]。

注意:此資訊將置於憑證要求中,所以請確定它是正確無誤的。CA 會驗證此資訊並將其置於憑證中。瀏覽網站的使用者會想要查看此資訊,以決定他們是否應該接受憑證。

11.在 [公用名稱] 欄位中輸入網站的公用名稱,再按 [下一步]。

重要事項:公用名稱是憑證所有資訊中最重要的資訊之一。它是網站的 DNS 名稱 (即使用者瀏覽網站時鍵入的名稱)。如果憑證名稱與網站名稱不符,則會在使用者瀏覽至該網站時報告憑證問題。

如果您的網站位於網路上,且命名為 http://www.contoso.com/,則這就是您應該指定的公用名稱。

如果網站位於內部網路,且使用者是以電腦名稱進行瀏覽,請輸入該電腦的 NetBIOS 或 DNS 名稱。

12.在 [國家/地區]、[省/州] 與 [城市/位置] 欄位中輸入適當的資訊,再按 [下一步]。
13.輸入憑證要求的檔案名稱。

檔案所包含的資訊與下列類似。
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIDZjCCAs8CAQAwgYoxNjA0BgNVBAMTLW1penJvY2tsYXB0b3Aubm9ydGhhbWVy...
-----END NEW CERTIFICATE REQUEST-----

這是憑證要求的 Base 64 編碼表示法。要求中包含輸入精靈的資訊、公開金鑰以及使用私密金鑰簽署的資訊。

此要求檔案會傳送至 CA。然後,CA 會使用憑證要求中的公開金鑰資訊,來驗證用私密金鑰簽署的資訊。CA 也會驗證要求所提供的資訊。

在您將要求提交至 CA 之後,CA 會傳回包含憑證的檔案。然後您就可以重新啟動「Web 伺服器憑證精靈」。

14.按 [下一步]。精靈會顯示憑證要求中所包含的資訊摘要。

15.按 [下一步],再按 [完成],以結束要求程序。該憑證要求現在可以傳送到 CA 進行驗證及處理。從 CA 接收到憑證回應之後,即可再次使用「IIS 憑證精靈」繼續在網頁伺服器上安裝憑證。

提交憑證要求

本程序會使用「Microsoft 憑證服務」來提交上一個程序所產生的憑證要求。
1.使用 [記事本] 開啟上一個程序所產生的憑證檔案,並將其全部內容複製到剪貼簿上。
2.啟動 Internet Explorer,並巡覽至 http://hostname/CertSrv,其中 hostname 是執行「Microsoft 憑證服務」的電腦名稱。
3.按一下 [要求憑證],再按 [下一步]。
4.在 [選擇要求類型] 頁面上按一下 [進階要求],再按 [下一步]。
5.在 [進階憑證要求] 頁面上按一下 [使用 base64 編碼 PKCS#10 檔案,提交憑證要求],再按 [下一步]。
6.在 [提交已儲存的要求] 頁面上按一下 [Base64 編碼憑證要求 (PKCS #10 或 #7)] 文字方塊,再按 CTRL+V,以貼上您先前複製到剪貼簿中的憑證要求。
7.在 [憑證範本] 下拉式方塊中按一下 [Web 伺服器]。
8.按一下 [提交]。
9.關閉 Internet Explorer。

發行憑證

1.從 [系統管理工具] 程式群組中啟動 [憑證授權單位] 工具。
2.展開您的憑證授權單位,再選取 [擱置要求] 資料夾。
3.選取您剛剛提交的憑證要求。
4.在 [執行] 功能表上,指向 [所有工作],再按一下 [發行]。
5.確認憑證已顯示在 [發出的憑證] 資料夾中,然後在其上按兩下以檢視之。
6.在 [詳細資料] 索引標籤上按一下 [複製到檔案],並將憑證儲存為 Base-64 Encoded X.509 憑證。
7.關閉憑證的 [內容] 視窗。
8.關閉 [憑證授權單位] 工具。


使用OpenSSL產生憑證

下載位置:

http://www.raidenmaild.com/download/CreateSSL_com.rar
http://www.raidenmaild.com/download/createssl10.rar

1. 解開createssl10.rar 到一目錄, 假設 CreateSSL
2. 解開CreateSSL_Com.rar 到同一目錄 CreateSSL 裡,
3. 手動註冊兩個OCX 檔

regsvr32 D:\CreateSSL\COMDLG32.OCX
regsvr32 D:\CreateSSL\MSMASK32.OCX

4. 執行 CreateSSL.exe
5. 憑證強度選1024

結束日期設個幾年後
網址給它填你要用的url, 沒有也給它掰一個好了.
存放位置請輸入一個目錄, 就以 CreateSSL 這目錄的全路徑好了, 如: D:\CreateSSL

6. 選[包含用戶端與伺服器憑證]
7. 打勾[自動產生請求檔]
8. 按[產生SSL 憑證]
9. 接下來出現的

pass phrase 都給 1234
其它的就是要填一些憑證資料,
如TW, Taiwan, Taipei, 公司名, 單位名, 網域或IP 位址(這要看你的Server 用途是 web 還是 pop3 為主要, 是 web 就要用網域, Pop3 的話用IP), email, ...額外屬性的密碼和名稱都可以不用給, 按ENTER 就好.

10. 做完 dos 畫面的那些動作, 程式最後會講產生好指令檔, 需你的參與去進行簽章. 這時切回檔案總管, 到該 CreateSSL 目錄.
11. 你會看到 ca.crt, 請先把它 COPY & PASTE 一份並更名成為 cacert.pem, 因為它待會會被殺掉(應該不該殺掉).
12. 執行 UserSign.bat, 它會問你 y/n , 當然都給 y
13. 執行完 UserSign.bat, 回到 CreateSSL 點[已完成簽章].
14. 你會看到 CreateSSL 目錄下會多一個以你網址的目錄(假設 A), 裡頭擺著 client 及 server 的憑證
15. 接下來要進行更名及剪貼內容的動作
16. 請把剛剛覆製的 ca.crt 更名為 cacert.pem 並拷到 A 目錄, 並再多覆製一份, 其檔名為 cacert.cer (這個是給使用者下載點來安裝信任根憑證用的)
17. 請在 A 目錄 server.cer 和 server.crt 用 notepad 打開,

你會看到它要你把 server.crt 中的
-----BEGIN CERTIFICATE-----
MIIDozCCAwygAw.....................
.........................Nei7giVZEO/gk=
-----END CERTIFICATE-----
貼到 server.cer 裡去, 在貼完後, 請把 server.cer 另存新檔為 cert.pem

18. 做完上述動作後,恭喜你, 已經完成了.


參考資料:
How To:在網頁伺服器上設定 SSL
Windows 2003 核發自己的 IIS SSL 憑證步驟
提供小工具 - SSL憑證產生器

留言

這個網誌中的熱門文章

用PHP寄MAIL的方法

ImageMagick應用大全(一)

php安裝openssl的方法