WCF を使用した認証に基本証明書とクライアント証明書を必要とする Web サービス エンドポイントと統合しようとしています。オンラインの提案に基づいてさまざまな設定を試しましたが、それでも「認証局 XXXXX で SSL/TLS の安全なチャネルを確立できませんでした」というメッセージが表示されます。サーバーは、Windows 証明書ストアで既に利用可能な既知の CA を使用します。コードでは、 ClientCredentials.UserName.UserName 、 ClientCredentials.UserName.Password および ClientCredentials.ClientCertificate.Certificate を正常に追加しています。
1)
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic"/>
</security>
結果 : 「権限 XXXXX で SSL/TLS の安全なチャネルを確立できませんでした」
2)
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="Basic" />
<message clientCredentialType="Certificate" />
</security>
結果: 結果: 「認証局 XXXXX で SSL/TLS の安全なチャネルを確立できませんでした」
3)
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
<message clientCredentialType="UserName" />
</security>
結果 : HTTP 要求は、クライアント認証方式「匿名」で許可されていません。サーバーから受信した認証ヘッダーは「Basic realm="Realm"」でした。---> System.Net.WebException: リモート サーバーがエラーを返しました: (401) Unauthorized.
clientCredentialType を「Certificate」に設定したときに返されるエラーに基づいてサーバーが基本認証を期待しているため、基本認証を使用してクライアント証明書を添付する方法。
注:SOAPUIを使用すると、サーバーに正常に接続できます