Mono WCF应用程序无法在Linux

时间:2016-04-20 21:55:45

标签: c# linux wcf mono x509

我正在开发一个必须调用Web服务的WCF应用程序。使用http进行测试时,该程序工作正常。当使用https时,我收到异常“在X509商店中找不到具有查找类型的指定X509证书......”。在Windows和.Net上运行时,该程序可以正常使用https,但在Linux / Mono设置中运行时会引发异常。我已经使用certmgr.exe实用程序在Linux系统上添加了证书,并且可以使用相同的实用程序列出它们,因此它们似乎可以保存在商店中。应用程序从其app.config文件中获取其配置信息。我试图使用各种不同的x509FindTypes和findValues(FindBySubjectName,FindBySerialNumber,FindByThumbprint)找到证书,并尝试将证书添加到计算机和个人商店,但不断获得相同的异常,引用任何查找类型,位置和我设置的商店。 app.config的相关部分如下:

<system.serviceModel>
   <client>
      <endpoint address="https://webserviceaddress"
                binding="basicHttpBinding"
                bindingConfiguration="secureBasicHttpBinding"
                behaviorConfiguration="secureClientBehavior"
                contract="IWebServiceContract">
     </endpoint>
    </client>
    <behaviors>
      <endpointBehaviors>
        <behavior name="secureClientBehavior" >
          <clientCredentials>
            <clientCertificate storeLocation="CurrentUser" storeName="My" x509FindType="FindBySerialNumber" findValue="AFCB6CC0417B2D459BB1F859CE070661" />         
            <serviceCertificate>
              <authentication revocationMode="NoCheck" />
            </serviceCertificate>
          </clientCredentials>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="secureBasicHttpBinding"
                 receiveTimeout="00:10:00" sendTimeout="00:10:00"
                 maxReceivedMessageSize="2147483647"
                 maxBufferSize="2147483647">
          <security mode="TransportWithMessageCredential">
            <message clientCredentialType="Certificate" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>

如果有人可以提供任何有关在商店中找到证书的帮助,我们将不胜感激。

提前感谢您的回复。

0 个答案:

没有答案