zoukankan      html  css  js  c++  java
  • WCF X.509验证

    1.证书的制作

    makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingServer -sky exchange -pe
    makecert.exe -sr LocalMachine -ss My -a sha1 -n CN=ParkingClient -sky exchange -pe 

    注意:证书制作完后还要对相应的证书读取权限作配置。

    WCF取用X.509证书,服务端和客户端都要作相应的修改。

    2.服务端的修改

    behavior节点:

            <behavior name="CustomBehavior">
              <serviceMetadata httpGetEnabled="true" />
              <serviceDebug includeExceptionDetailInFaults="true" />
              <serviceCredentials>
                <clientCertificate>
                  <authentication certificateValidationMode="None" />
                </clientCertificate>
                <serviceCertificate findValue="ParkingServer" storeLocation="LocalMachine"
                  storeName="My" x509FindType="FindBySubjectName" />
              </serviceCredentials>
            </behavior>

    binding节点

          <wsHttpBinding>
            <binding name="CustomWsHttpBinding">
              <security mode="Message">
                <message clientCredentialType="Certificate"/>
              </security>
            </binding>
          </wsHttpBinding>

    service节点

        <service  name="WcfService1.Service1" behaviorConfiguration="CustomBehavior">
            <endpoint address="" binding="wsHttpBinding" bindingConfiguration="CustomWsHttpBinding"
              contract="WcfService1.IService1">
              <identity>
                <dns value="ParkingServer" />
              </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
          </service>

    3.客户端的修改

    client-endpoint节点

          <endpoint address="http://localhost:60909/Service2.svc" binding="basicHttpBinding" behaviorConfiguration="CustomBehavior2"
            bindingConfiguration="BasicHttpBinding_IService2" contract="ServiceReference2.IService2"
            name="BasicHttpBinding_IService2">
            <identity>
              <dns value="ParkingServer" />
            </identity>
          </endpoint>

    bindings节点

          <basicHttpBinding>
            <binding name="BasicHttpBinding_IService2">
              <security mode="Message">
                <message clientCredentialType="Certificate" />
              </security>
            </binding>
          </basicHttpBinding>

    behavior节点

    behavior节点,wsHttpBindings和basicHttpBindings的绑定内容有所不同。basicHttpBindings多一个defaultCertificate的配置

    basicHttpBindings

            <behavior name="CustomBehavior2">
              <clientCredentials>
                <clientCertificate findValue="zoesoft"
                                    x509FindType="FindBySubjectName"
                                    storeLocation="LocalMachine"
                                    storeName="My"/>
                <serviceCertificate>
                  <authentication certificateValidationMode="None"/>
                  <defaultCertificate findValue="ParkingServer" storeName="My" storeLocation="LocalMachine" x509FindType="FindBySubjectName"/>
                </serviceCertificate>
              </clientCredentials>
            </behavior>

    wsHttpBindings

            <behavior name="CustomBehavior">
              <clientCredentials>
                <clientCertificate findValue="zoesoft"
                                    x509FindType="FindBySubjectName"
                                    storeLocation="LocalMachine"
                                    storeName="My"/>
                <serviceCertificate>
                  <authentication certificateValidationMode="None"/>
                </serviceCertificate>
              </clientCredentials>
            </behavior>

    参考:

    WCF开发框架形成之旅--如何实现X509证书加密

    Invoke WCF service from Java Client with Authentication (X.509 Certificate) Java 客户端调用WCF服务 需要安全验证

  • 相关阅读:
    第二十章 springboot + consul(1)
    附2 hystrix详述(2)- 配置
    附1 hystrix详述(1)
    第十九章 springboot + hystrix(1)
    第十八章 springboot + thymeleaf
    第十七章 springboot + devtools(热部署)
    Nginx(二):虚拟主机配置
    SpringMVC中异常处理详解
    五分钟读懂UML类图
    Java web中WEB-INF目录理解
  • 原文地址:https://www.cnblogs.com/Gyoung/p/4770785.html
Copyright © 2011-2022 走看看