共用方式為


BizTalk Server 憑證的已知問題

本節說明管理與BizTalk Server搭配使用之數位憑證的已知問題。

一般憑證問題

缺少憑證撤銷清單的連線能力會導致憑證遭到拒絕

此問題牽涉到下列錯誤:「發生驗證錯誤。 憑證授權單位單位的狀態 (CA) 發出用來簽署訊息的憑證不明」。即使簽署憑證在 MMC (下檢視時,使用BizTalk Server上的BizTalk Server使用者) ,也會發生此錯誤。

如果在接收管線中的 S/MIME 解碼器元件上啟用「檢查證書撤銷」屬性,就會發生此狀況。 當此屬性設定為 true 時,BizTalk Server會嘗試查詢憑證撤銷清單 (CRL) ,以查看傳入憑證是否已撤銷。 憑證本身未撤銷並不重要。 如果BizTalk Server因為連線問題而無法查詢對應的 CRL,則不接受憑證。 若要針對此錯誤進行疑難排解,請按兩下您使用的憑證來顯示憑證的屬性。 在 [詳細資料] 索引標籤中,您會在欄位清單中看到屬性 「CRL 發佈點」。 此屬性中應該有數個 URL 指向 CA 伺服器上的 CRL。 BizTalk 伺服器必須能夠存取上述任何 URL,才能擷取 CRL。 否則,撤銷檢查將會失敗,並張貼上述錯誤。

其他人員憑證存放區在存取之前不會初始化

當您嘗試使用遠端BizTalk Server系統管理員主控台新增或修改傳送/接收埠/位置時,此問題牽涉到下列憑證存放區錯誤:「無法開啟憑證存放區」。 和 「系統找不到指定的檔案。 (系統) 」。

注意

如果您直接登入 BizTalk Server,您可以使用管理主控台來修改這些成品。

在新安裝的電腦上,除非您一次存取其他人員證書存儲,否則不會初始化。 在群組組態期間,您可以初始化此其他人員證書存儲,因此在群組組態已完成的電腦上看不到此錯誤。

BizTalk Server每個 BizTalk 群組只支援一個個人憑證

BizTalk 群組所使用的個人憑證是藉由在 BizTalk 群組屬性中設定個人憑證的指紋來指定。 BizTalk 群組可以代表企業、部門、中樞或其他業務單位。

AS2 憑證問題

AS2 解碼器不會驗證已在主機上或目的地合作物件上設定憑證

只要憑證存放區中已設定訊息的私用憑證,AS2 解碼器就會解密訊息。 不過,AS2 解碼器將不會驗證解密憑證是否與主控件上設定的憑證相同。 收到的訊息可以使用一個以上的憑證加密。

如果憑證無效,BizTalk Server將無法解密以網路格式儲存的訊息

徵兆

BizTalk Server 無法解密以電傳格式儲存在不可否認性資料庫中的內送 AS2 訊息。

可能的原因

解密訊息時所需的憑證已過期或已撤銷。 當 AS2 訊息儲存在不可否認性資料庫一段時間後,就可能會發生這種狀況。 這時您可能無法立即存取訊息的有效憑證。

解決方法

取得有效憑證來解密訊息。

如果無法解密 AS2 訊息,重新匯入憑證可能會修正此問題

徵兆

AS2 解碼器嘗試解密 AS2 訊息時遇到例外狀況,並擲回下列錯誤:

"The AS2 Decoder encountered an exception during processing. Details of the message and exception are as follows:
   AS2-From:"PARTNER" AS2-To:"HOME" MessageID:"<137706.1178060412333@servername>"
   MessageType: "unknown" Exception:"An error occurred when decrypting an AS2 message."
System.ArgumentNullException: Value cannot be null.
Parameter name: PayloadContentType
at Microsoft.BizTalk.Edi.Reporting.Common.Utilities.ValidateArgument(Object o,
String parameterName, Boolean isEmptyStringValidationRequired)
at Microsoft.BizTalk.EdiInt.Reporting.AS2MessageActivity.ValidateParameters()
at Microsoft.BizTalk.EdiInt.Reporting.AS2MessageActivity.Create()"

可能的原因

用來解密 AS2 訊息的憑證必須重新載入「個人存放區」。

解決方法

從 [個人存放區] 刪除現有的憑證,然後使用 [憑證匯入精靈] 將憑證重新匯入 [個人存放區]。 若要這樣做,請以滑鼠右鍵按一下[個人存放區] 底下的 [憑證] 資料夾,指向 [所有工作],然後按一下 [匯入]。

針對同進程主機實例和隔離主機實例使用相同的登入,以確保能夠辨識個人存放區

只有在針對其登入認證與主控件執行個體相關聯的使用者載入使用者設定檔時,個人憑證存放區才能用於訊息處理。 個人存放區是用於簽章和解密憑證 (使用者專屬的私密金鑰)。 預設會為內含式主控件執行個體載入使用者設定檔,但是不會為外掛式主控件執行個體載入使用者設定檔。 您可以讓應用程式針對外掛式主控件載入使用者設定檔。 或者,您也可以為內含式主控件執行個體和外掛式主控件執行個體使用相同的登入,以解決這個問題。

除了由應用程式載入使用者設定檔,您也可以建立空的服務來載入設定檔。 如需建立空白服務的詳細資訊,請參閱 How to: Create Windows Services (https://go.microsoft.com/fwlink/?LinkId=155149) in Visual Studio Help。

建立空服務以載入設定檔之後,請依照下列方式繼續進行:

  1. 按一下 [開始],然後按一下 [ 執行 ] 以開啟 [ 執行 ] 對話方塊。

  2. 在 [ 執行 ] 對話方塊中,輸入 service.msc ,然後按 ENTER 以開啟 [服務 MMC 嵌入式管理單元]。

  3. 開啟您所建立服務的 [ 屬性 ] 對話方塊。 以滑鼠右鍵按一下服務,然後選取 [ 屬性]。

  4. 按一下 [ 登入 ] 索引標籤,選取 [此帳戶],然後輸入用於隔離主機實例的登入名稱。

  5. 按一下 [確定]。

  6. 手動啟動服務以載入該登入使用者的使用者設定檔。

憑證的金鑰使用方式屬性必須符合憑證使用方式

AS2 傳輸所使用的憑證必須有憑證預定使用方式的必要屬性。 就簽署和簽章驗證而言,憑證的 [金鑰使用方式] 屬性必須是 [數位簽章]。 就加密和解密而言,憑證的 [金鑰使用方式] 屬性必須是 [資料編密] 或 [金鑰編密]。 您可以按兩下憑證、按一下 [憑證] 對話方塊中的 [詳細資料] 索引標籤,然後核取 [金鑰使用方式] 欄位,以驗證金鑰使用方式屬性。

如果未設定合作對象的 AS2-To 屬性,則會針對外寄 MDN 驗證憑證解析清單

在外寄 MDN 的預設協議中,會執行憑證解析清單驗證。 如果您不要執行此驗證,請確認已設定正確的 AS2-To 合作對象屬性,以便解析接收的合作對象並判斷合作對象屬性。 如此一來,便不會使用預設協議 (會提示要驗證憑證解析清單)。 您也將需要停用 AS2 合作對象屬性 [一般] 頁面上的 [檢查憑證撤銷清單] 屬性。