customBinding
SOAP 1.2、TLS、およびクライアント証明書を使用して Web サービスを呼び出すを作成しようとしています。私が理解しているように、これは でのみ機能しcustomBinding
ます。
次の動作を定義しました。
<behaviors>
<endpointBehaviors>
<behavior name="TehRightBehaviour">
<clientCredentials>
<serviceCertificate>
<defaultCertificate findValue="WebInterface" x509FindType="FindBySubjectName" />
<authentication revocationMode="NoCheck" certificateValidationMode="None" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
クライアントは証明書を見つけますが、間違った名前を指定すると、エラーが発生します。私のバインディングは次のようになります。
<customBinding>
<binding name="TehRealBinding">
<transactionFlow />
<textMessageEncoding messageVersion="Soap12" />
<security authenticationMode="MutualCertificate" />
<httpsTransport requireClientCertificate="true" />
</binding>
</customBinding>
そして、私はそれをエンドポイントで次のように結合します:
<client>
<endpoint address="https://hestia1:8081/cm/main"
behaviorConfiguration="TehRightBehaviour"
binding="customBinding"
bindingConfiguration="TehRealBinding"
contract="BrightMain.CMMainService"
name="cmmain" />
</client>
問題は、Web サービスを呼び出すと、次のような例外が発生することです。
「クライアント証明書が提供されていません。ClientCredentials でクライアント証明書を指定してください。」
証明書を指定するにはいくつかのポイントがあることがわかりましたが、明らかに間違ったものを使用しています。だから私の質問は:どれが正しいですか?
前もって感謝します、クリストフ
編集:おそらく、を指定するだけでは十分ではないため、読むことを学ぶ必要が<serviceCertificate>
あります。これで確認します…