0

C#/WCF で Web サービス クライアントを作成していて、チャネルを認証できません。これは、API 呼び出しを実行しようとしたときに表示されるエラー メッセージです。

"Could not establish secure channel for SSL/TLS with authority 'www.redacted.com'."

そして設定ファイル:

    <behaviors>
        <endpointBehaviors>
            <behavior name="NewBehavior0">
                <clientCredentials>
                    <clientCertificate findValue="th um bp ri nt va lu e  go es he re"
                        x509FindType="FindByThumbprint" />
                </clientCredentials>
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <bindings>
        <basicHttpBinding>
            <binding name="WsApiServiceSoapBinding" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Mtom" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
                <security mode="Transport">
                    <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
                    <message clientCredentialType="UserName" algorithmSuite="Default"/>
                </security>
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="https://www.<redacted>.com/services/WsApiService/"
            behaviorConfiguration="NewBehavior0" binding="basicHttpBinding"
            bindingConfiguration="WsApiServiceSoapBinding" contract="WsApiServicePortType"
            name="WsApiServicePort" />
    </client>

クライアント コードで行っていることは、getDoc メソッドの呼び出しを実行することだけです。プロキシ クラスは、WCF で WSDL から自動生成されます。証明書が certmgr の Personal カテゴリにインストールされており、有効期限が切れておらず、すべての目的に使用できることを確認しました。(この同じ証明書が WSE の下で問題なく機能したことに注意してください。) 検索してみましたが、現在の構成と矛盾するものは見つかりませんでした。

何か案は?さらにコードが必要な場合はお知らせください。できるだけ早く投稿します。

4

1 に答える 1

0

さて、もう少し深く掘り下げたところ、間違った拇印を使用していたことがわかりました。私が使用していたものは、同じ発行者からの証明書に属していましたが、別のエンドポイント用でした (どうやってそれらを混同したのかわかりません)。適切な証明書が使用されたので、SSL を確立できます。

ここで、この MTOM サービスが私の MTOM 要求に驚いている理由を理解する必要があります :P

于 2013-06-14T18:05:19.730 に答える