BizTalk Server の証明書に関する既知の問題
このセクションでは、BizTalk Serverで使用されるデジタル証明書の管理に関する既知の問題について説明します。
証明書の一般的な問題
証明書失効リストへの接続がない場合、証明書は拒否されます
この問題には、次のエラーが含まれます: "認証エラーが発生しました。 メッセージの署名に使用された証明書を発行した証明機関 (CA) の状態は不明です。"このエラーは、BizTalk Serverの MMC (BizTalk Server ユーザーを使用) で表示するときに署名証明書が有効な場合でも発生する可能性があります。
この条件は、受信パイプラインの S/MIME デコーダー コンポーネントで "証明書失効の確認" プロパティが有効になっている場合に発生する可能性があります。 このプロパティが true に設定されている場合、BizTalk Serverは証明書失効リスト (CRL) のクエリを実行して、受信した証明書が取り消されたかどうかを確認しようとします。 証明書自体が失効していないかどうかは関係ありません。 BizTalk Server接続の問題が原因で対応する CRL に対してクエリを実行できない場合、証明書は受け入れられません。 このエラーをトラブルシューティングするには、使用した証明書をダブルクリックして証明書のプロパティを表示します。 [詳細] タブには、フィールド リストに属性 "CRL 配布ポイント" が表示されます。 この属性には、CA サーバー上の CRL を指す複数の URL が必要です。 BizTalk サーバーは、CRL を取得するために、これらの URL のいずれかにアクセスできる必要があります。 それ以外の場合、失効チェックは失敗し、上記のエラーが投稿されます。
その他のPeople証明書ストアは、アクセスされるまで初期化されません
この問題には、BizTalk Server管理者コンソールをリモートで使用して送受信ポート/場所を追加または変更しようとすると、次の証明書ストア エラーが発生します。"証明書ストアを開けませんでした"。 および "システムは、指定されたファイルを見つけることができません。 (システム)"
Note
BizTalk Serverに直接ログオンする場合は、管理コンソールを使用してこれらの成果物を変更できます。
新しくインストールされたコンピューターでは、その他のPeople証明書ストアは、一度アクセスしない限り初期化されません。 グループ構成中に、この [その他のPeople証明書ストア] を初期化できます。その結果、グループ構成が行われたコンピューターでこのエラーが表示されません。
BizTalk Serverでは、BizTalk グループごとに 1 つの個人証明書のみがサポートされます
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 メッセージの解読に使用する証明書を個人証明書ストアに再度読み込む必要があります。
解像度
個人証明書ストアから既存の証明書を削除し、証明書のインポート ウィザードで証明書を個人証明書ストアに再インポートします。 これを行うには、個人用ストアの下にある [証明書] フォルダーを右クリックし、[すべてのタスク] をポイントし、[インポート] をクリックします。
インプロセス ホスト インスタンスと分離ホスト インスタンスに対して同じログオンを使用して、個人用ストアが確実に認識されるようにする
個人証明書ストアは、ログオン資格情報がホスト インスタンスに関連付けられているユーザーのユーザー プロファイルが読み込まれた場合にのみ、メッセージ処理に使用できます。 個人証明書ストアは、証明書 (ユーザー独自の秘密キー) の署名と解読に使用されます。 ユーザー プロファイルは、インプロセス ホスト インスタンスでは既定で読み込まれますが、分離ホスト インスタンスでは既定で読み込まれません。 分離ホストのユーザー プロファイルは、アプリケーションで読み込むことができます。 インプロセス ホスト インスタンスと分離ホスト インスタンスに同じログオンを使用することで、この問題を回避することもできます。
アプリケーションによってユーザー プロファイルを読み込む代わりに、プロファイルを読み込むための空のサービスを作成することもできます。 空のサービスの作成の詳細については、「方法: Visual Studio ヘルプで Windows サービス (https://go.microsoft.com/fwlink/?LinkId=155149) を作成する」を参照してください。
プロファイルを読み込む空のサービスを作成した後、次の手順に従います。
[ スタート] をクリックし、[ 実行 ] をクリックして [ 実行 ] ダイアログ ボックスを開きます。
[ 実行 ] ダイアログ ボックスで、「 service.msc 」と入力し、 Enter キー を押して Services MMC スナップインを開きます。
作成したサービスの [ プロパティ ] ダイアログ ボックスを開きます。 サービスを右クリックし、[プロパティ] を選択 します。
[ ログオン ] タブをクリックし、[ このアカウント] を選択し、分離ホスト インスタンスに使用されるログオン名を入力します。
[OK] をクリックします。
サービスを手動で開始して、そのログオン ユーザーのユーザー プロファイルを読み込みます。
証明書のキーの使用法属性が、証明書の使用法に一致する必要がある
AS2 トランスポートに使用する証明書には、その使用目的に必要な属性が設定されている必要があります。 署名および署名の検証を行うには、証明書の [キーの使用法] 属性が [デジタル署名] である必要があります。 暗号化および解読を行うには、証明書の [キーの使用法] 属性が [データの暗号化] または [キーの暗号化] である必要があります。 キー使用法属性を確認するには、証明書をダブルクリックし、[証明書] ダイアログ ボックスの [詳細] タブをクリックし、[キー使用法] フィールドをオンにします。
AS2-To プロパティがパーティに対して設定されていない場合、送信 MDN に対して証明書解決の一覧が検証される
送出 MDN の既定のアグリーメントでは、証明書解決の一覧の検証が実行されます。 この検証を実行する必要がない場合は、受信側パーティを解決できるようにするため、およびパーティのプロパティを特定できるようにするために、正しい AS2-To パーティ プロパティが設定されていることを確認します。 これにより、証明書解決の一覧の検証を要求する既定のアグリーメントが使用されなくなります。 また、AS2 パーティ プロパティの [全般] ページで、"証明書失効リストを確認する" プロパティを無効にする必要もあります。