【问题标题】:Restful service with SSL使用 SSL 的宁静服务
【发布时间】:2015-02-20 15:20:26
【问题描述】:

您好,我创建了一个 Restful 服务,并且我有一个客户端调用 Post 方法的 Post 方法。(WCF DOT net 4.0 VS 2012)

我的客户告诉我,他不会向我提供任何证书,我只需要使用我的证书进行身份验证(他所说的一种方式身份验证)

  1. 我从证书颁发机构获得了 .pfx 文件,并使用导入选项在 IIS 7 中安装了 .pfx。
  2. 创建了一个网站并将其设置为 Https 443 端口并从下拉列表中选择导入的 .pfx 文件
  3. 选择我的网站并选择 SSL 设置并选中需要 SSL 并选中接受选项按钮 - 在客户端证书上

我在我的配置文件中进行了以下更改以表明该站点正在使用 SSL

   'security mode="Transport"
        transport clientCredentialType="None"
      security'

我的问题是

  1. 我的客户是否必须在他的机器上安装一个由我的 CA 签名的 .cert 文件?
  2. 如果他安装就足够了,或者他需要在每个请求中使用该证书文件?
  3. 我如何确定某人是否使用了由我的 CA 签名的其他证书文件?
  4. 如何验证证书?
  5. 这里是否缺少用于 SSL HTTPS 通信的任何内容。

请指导我使用 SSL 制作安全的 Restful 服务。

【问题讨论】:

    标签: .net wcf rest servlets ssl


    【解决方案1】:

    单向身份验证或简单 SSL 意味着只有服务器使用 X.509 证书对自己进行身份验证。客户是匿名的。

    1. 没有。客户端不必安装由您的 CA 签名的证书。客户必须信任您的 CA。许多 CA 证书已经在 Windows 信任库中。如果您的 CA 证书不在其中,则客户端必须将 CA 证书安装到受信任的根证书颁发机构中。
    2. 信任您的 CA 证书就足够了。客户不会在任何请求中发送任何证书。我们将在您开始通信时收到您的 SSL 证书并对其进行验证(检查您的证书是否由受信任的 CA 颁发)。
    3. 您的 SSL 证书中包含对您网站的引用。服务器 SSL 证书的 CN 的大部分 subject 等于主机名。因此,如果您的服务可通过https://example.com 访问,您的 SSL 证书将具有 CN=example.com。您可以查看https://www.google.com/。但是还有其他选项包括对证书的站点引用。当客户端验证服务器 SSL 证书时,它也会验证这一点。 CA 应在向您颁发 SSL 证书之前验证您是域的所有者。
    4. 我不明白。您(在服务器上)不验证任何证书。
    5. 您可以使用浏览器测试 SSL。只需在浏览器中访问您的服务的 URL,如果您的服务也支持 GET 请求,您应该会在没有任何警告的情况下得到响应。

    【讨论】:

    • 您好,感谢您的回复,这真的很有帮助,对于第 4 点,如果客户是匿名的,我想确保只有某些人可以联系我寻求服务(我想知道谁在发送向我请求)我想验证客户端并发送响应(所以使用证书我该如何处理这个 - 我在请求客户端中没有用户信息) - 所以从服务器来看我如何使用证书找到客户端。跨度>
    • 您可以在自定义处理程序中访问客户端证书。这是一个教程How to: Create a Service that Employs a Custom Certificate Validator。客户端可能没有发送任何证书。如果要强制客户端发送证书,请在 IIS 的 客户端证书 区域中选择 Require。然后称为相互认证或2WAY认证。
    • 您好,感谢您的回复,我的客户将始终将我的证书连同他的请求一起发送,以实现我遇到以下问题(声明集计数 = 0)[链接]stackoverflow.com/questions/28715309/…[链接]更好的方向将对我更有帮助
    猜你喜欢
    • 2015-08-11
    • 2011-12-10
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    相关资源
    最近更新 更多