[Windows] Windows 2008 為何無法匯出 pvk 檔案呢? (Why can not export pvk files in Windows 2008?)

相信用過 Windows 2003 CA 的人在發行 Code Sing 憑證時都有不少的經驗,但在 Windows 2008 CA 環境下進行 Code Sing 憑證發行時都會有個相同的疑問「pvk 檔怎麼無法匯出了呢?」

相信用過 Windows 2003 CA 的人在發行 Code Sing 憑證時都有不少的經驗,但在 Windows 2008 CA 環境下進行 Code Sing 憑證發行時都會有個相同的疑問pvk 檔怎麼無法匯出了呢?」

 

然而筆者亦是如此,為了解決這問題,筆者跟朋友進行討論,並請教了 Google 大神,但仍然無所獲~~

 

但不解決這問題,心中總是不悅,最後直接打電話詢問 Microsoft 技術中心,雙方進行了不少討論後,找到了此問題的關鍵處『流程改變』~~

 

未避免有人像我一樣身受泥濘,在本文中進行說明,希望對大家有幫助~~

 

至於到底『流程改變』了什麼呢?您可以參考下表~~(紅色字體為差異處)

Windows

核發 Code Sign 憑證流程

2003

1. 要求憑證 - 產生 .pvk 檔案

2. 發行憑證。

3. 匯出憑證 - 產生 .spc 檔案

2008

1. 要求憑證。

2. 發行憑證。

3. 安裝憑證

4. 檢視已安裝憑證。<= 可有可無

5. 匯出已安裝憑證 - 產生 .pfx 檔案

 

P.S. 若您想了解更多憑證資訊,請參考『Windows 憑證服務指南』。

 

以下為筆者反應 Microsoft 技術中心時所整理之資訊~~

 

若您只想知道在 Windows 2008 環境下如何進行 Code Sign 憑證申請作業時,請您參考『核發 Code Sign 憑證 by Windows 2008』文章進行操作即可。

一、問題陳述:

分別測試了 Windows 2003 與 Windows 2008 兩版本之 CA 功能,在簽署 SSL 加密上兩版本皆能正常簽署,但在簽署 [程式碼簽章] 時,僅有 2003 版本可正常匯出 pvk 檔,然而 2008 版本勾選與 2003 版本之選項時,不會跑出匯出 pvk 檔之項目:

Windows 2003

Windows 2008

Windows 2003 CA Export

Windows 2008 CA Export

筆者已進行了以下試驗,但仍無法解決:

1. 將 2008 之 CA Web Site 對應至 2003 版本。

2. 修改 2008 之 CA Web Site ASP Code。

(1 & 2 點皆會有以下圖示錯誤,出現此圖時,無任何可進行安裝的 ActiveX 閃爍Bar)

Windows 2008 CA Active Install Error

   P.S. 以上皆以開啟 IE ActiveX 選項為 [啟用] 或 [提示]。

3. 若使用匯出憑證時會有以下問題:

   A. 產生 .cer 或 .p7b 檔時,因為無 pvk 檔,故無法對程式進行簽章。

   B. 產生 .pfx 檔時,雖然可進行程式簽章,但對應的根憑證是錯誤的。

二、問題原因:

此選項 [將金鑰匯出到檔案] 經過確認後此功能會在底下兩個情形下不會出現:

1. Server 2003 CA + 安裝 KB922706

2. Server 2008 CA

P.S. 並沒有辦法透過其他方式將 [匯出到檔案] 選項顯示回來。

三、解決方式:

由於您在簽署ActiveX元件時會需要使用憑證內的私鑰 & 公鑰。

我們可以透過底下方式來進行,即可用最後產出的.pfx檔案進行ActiveX元件的簽章動作:

1. 申請憑證時選擇您設定的憑證範本,並勾選 [將金鑰標示成可匯出]。

2. 申請完成後點選 [安裝憑證]。

3. 安裝後透過MMC將憑證的管理畫面載入 (選擇目前的使用者),您可以看到您的憑證,點右鍵 --> 所有工作 --> 匯出。

4. 完成後即可使用該 pfx 檔案進行 ActiveX 元件的簽章。

P.S. 若你對文字感到陌生,亦可參考『核發 Code Sign 憑證 by Windows 2008』文章進行逐步了解。

分享