0

Java Web サービスで使用するために、X509 証明書を使用して SOAP 要求に署名する必要がある状況があります。WCF の魔法により、適切に形成されたエンベロープを取得することができ、すべてが標準の http で見栄えがよくなりました。ただし、HTTPS (クライアントに必要) に移行すると、「権限のある SSL/TLS セキュア チャネルの信頼関係を確立できませんでした」というエラーが表示されるようになります。いくつかの設定を調整し、ターゲット ドメインを他の既知のドメインに変更しようとしました。 HTTPS サイトと同じエラーが表示されます。以下はクライアントの構成です。よろしくお願いします。

<?xml version="1.0"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding
          name="myCustomBinding"
          closeTimeout="00:01:00"
          openTimeout="00:01:00"
          receiveTimeout="00:10:00"
          sendTimeout="00:01:00">
          <textMessageEncoding
                  messageVersion="Soap11" />
          <security
            allowInsecureTransport="true"
            authenticationMode="MutualCertificate"
            requireDerivedKeys="false"
            keyEntropyMode="ClientEntropy"
            includeTimestamp="false"
            securityHeaderLayout="Lax"
            messageProtectionOrder="SignBeforeEncrypt"
            messageSecurityVersion="WSSecurity10WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10">
            <secureConversationBootstrap />
          </security>
          <httpsTransport />
        </binding>
      </customBinding>
    </bindings>
    <behaviors>
      <endpointBehaviors>
        <behavior name="wsHttpCertificateBehavior">
          <clientCredentials>
            <clientCertificate
              findValue="MyCertName"
              storeLocation="LocalMachine"
              x509FindType="FindByIssuerName"/>
            <serviceCertificate>
              <authentication
                revocationMode="NoCheck"
                trustedStoreLocation="LocalMachine" />
            </serviceCertificate>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <client>
      <endpoint
        address="https://www.SomeUrl.com"
        binding="customBinding"
        bindingConfiguration="myCustomBinding"
        behaviorConfiguration="wsHttpCertificateBehavior"
        contract="ServiceReference1.ServiceTest"
        name="untk48_dfSoap">
        <identity>
          <certificateReference findValue="MyCertName" storeLocation="LocalMachine" x509FindType="FindByIssuerName"/>
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
</configuration>
4

2 に答える 2

-1

クライアントに証明書をインストールすると、この問題は発生しません。インストールするときは、必ず中間証明機関と信頼されたルート証明機関にインストールしてください。

私のために働いた。

于 2013-10-01T09:01:07.730 に答える