【问题标题】:Asp.NET - Calling web service certificate error, IIS ManagerAsp.NET - 调用 Web 服务证书错误,IIS 管理器
【发布时间】:2014-05-16 09:37:02
【问题描述】:

我们开发了调用 Web 服务来获取数据的 ASP.NET Web 应用程序。访问 Web 服务需要证书。当我们从 Visual Studio 启动应用程序时一切正常,但当我们在 IIS 服务器上发布站点时它就不起作用了。

在 IIS 管理器中进行哪些必要设置才能使其正常工作。我们有 3 个证书,一个 .pfx 和两个 .cer 根文件。

【问题讨论】:

  • 您能描述一下您如何调用 Web 服务吗?也许添加一些示例代码。另请描述您在何处以及如何使用证书(pfx、cer...)

标签: asp.net-mvc iis ssl-certificate iis-manager


【解决方案1】:

当您从 Visual Studio 运行它时,您正在使用您的凭据运行应用程序。甚至 IIS Express 在您的凭据下运行。

如果您将证书导入 CurrentUser 存储区,那么您将其导入到您帐户下的存储区。 当您将 ASP.NET 页面部署到 IIS 时,默认情况下它在 DefaultAppPool 用户 (IIS APPPOOL\DefaultAppPool) 下运行。该用户有不同的证书存储,并且可能没有任何这些证书。

将这些证书导入到 LocalMachine 存储(mmc 中的本地计算机存储)并设置私钥的权限,以便 DefaultAppPool(或您设置的任何其他池用户)可以访问此私钥 或将这些证书导入 DefaultAppPool 的 CurrentUser 存储 或(快速但不漂亮的方法)设置 DefaulAppPool 以使用您的帐户凭据。

我个人会选择第一个选项。

【讨论】:

  • 我设法让它工作,正是你上面回答的问题,感谢你的努力......
【解决方案2】:

这是来自 web.config 的代码

<behaviors>
  <endpointBehaviors>
   <behavior name="Client2WaySSL">
        <clientCredentials>
          <clientCertificate findValue="CN=lsu.test.client.service.mup.hr" storeLocation="CurrentUser" />
          <serviceCertificate>
            <defaultCertificate findValue="CN=test.service.mup.hr" storeLocation="CurrentUser" storeName="TrustedPeople" />
          </serviceCertificate>
        </clientCredentials>
      </behavior>
  </endpointBehaviors>
</behaviors> 
<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_MUP.LokalnaSamouprava.FizickaOsoba.WebServiceInterface">
      <security mode="Transport">
        <transport clientCredentialType="Certificate" proxyCredentialType="None" realm="" />
      </security>

    </binding>
    <binding name="BasicHttpBinding_MUP.LokalnaSamouprava.FizickaOsoba.WebServiceInterface1" />
  </basicHttpBinding>
</bindings>
<client>
  <endpoint address="https://lsu.test.service.mup.hr:9001/FizickaOsobaService.svc" binding="basicHttpBinding" behaviorConfiguration="Client2WaySSL" bindingConfiguration="BasicHttpBinding_MUP.LokalnaSamouprava.FizickaOsoba.WebServiceInterface" contract="MUPServis.MUPLokalnaSamoupravaFizickaOsobaWebServiceInterface" name="MUP.LokalnaSamouprava.FizickaOsoba.WebServicePort" />
</client>

我们已经通过 MMC 控制台安装了证书。

【讨论】:

    猜你喜欢
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    相关资源
    最近更新 更多