发送可分辨 CA 列表作为 TLS 握手服务器 Hello 的一部分

问题描述

我们的项目要求我们的服务 (WCF REST) 将由不同的设备使用。每个设备都有唯一的客户端证书,该证书是使用管理应用程序从所有设备的公共根证书生成的。 TLS 协商后,服务器需要发送客户端证书请求和可分辨 CA 列表。客户端需要根据与 ServerHello(TLS Handshake message) 一起接收的 distinguished CA list 获取客户端证书。 我能够进行客户端证书请求。我需要在 WCF 上做什么才能包含可分辨的 CA 列表?我正在使用的 WCF 配置如下。

<system.serviceModel>
    <services>
      <service name="WCFClientCertificateValidation.TestContract" behaviorConfiguration="clientcert">
        <endpoint binding="webHttpBinding" contract="WCFClientCertificateValidation.ITestContract"  behaviorConfiguration="webHttp"></endpoint>
      </service>
    </services>
    <behaviors>
      <endpointBehaviors>
        <behavior name="webHttp">
          <webHttp></webHttp>
        </behavior>
      </endpointBehaviors>
      <serviceBehaviors>
        <behavior name="clientcert">
          <serviceCredentials>
            <clientCertificate>
              <authentication customCertificateValidatorType="WCFClientCertificateValidation.DeviceCertificateValidator,WCFClientCertificateValidation" certificateValidationMode="Custom" />
            </clientCertificate>
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <webHttpBinding>
        <binding maxReceivedMessageSize="1000000000" >
          <security mode="Transport">
            <transport clientCredentialType="Certificate"/>
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
  </system.serviceModel>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)