【问题标题】:TLS Client Authentication between .NET Console Application Client and Java RESTful Service.NET 控制台应用程序客户端和 Java RESTful 服务之间的 TLS 客户端身份验证
【发布时间】:2016-04-24 17:45:00
【问题描述】:

背景

我有一个 .NET 控制台应用程序客户端,它使用启用了 TLS 客户端身份验证(又名相互身份验证)的 Java RESTful 服务。

应该是这个SSL Socket between .Net and Java with client authentication的反面

问题

  1. 我总是收到此错误:无法为 SSL/TLS 安全通道建立信任关系

  2. 我不知道如何在客户端和服务器上正确配置它。

执行的步骤

  1. .NET 控制台应用程序已包含 CA、中间证书和服务器证书,但仍抛出相同的错误。

  2. 我向服务器提供了证书签名请求 (CSR)。

  3. 服务器已签名并将已签名的证书返回给我。签名证书包含在客户端和服务器之间的通信中。然而,同样的错误被抛出。

谁能告诉我如何成功握手?

【问题讨论】:

  • 你以前试过自签名吗?
  • 是的,但在这种情况下,我们使用的是从受信任的 CA 购买的证书。
  • 我只是想确定问题不在于证书。
  • 你能从浏览器调用那个 REST 服务吗?
  • 很遗憾,没有,在 .NET 客户端所在的同一台计算机上使用浏览器执行 HTTP GET 时,它也会显示 SSL 错误。

标签: java c# rest ssl


【解决方案1】:

这已解决

步骤如下:

  1. 创建证书签名请求 (CSR)。
  2. 让服务器签署 CSR。
  3. 获取签名证书。
  4. 在 HTTP 请求中包含签名证书。
  5. 确保将自签名 CA 证书放入本地计算机的受信任根 CA 存储中。

按顺序排错步骤(不要跳过如果某个步骤不成功):

  1. 使用 HTTP 测试
  2. 使用 HTTPS 进行测试(单向身份验证)
  3. 使用 HTTPS 进行测试(相互验证)

【讨论】:

    猜你喜欢
    • 2016-07-09
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 2013-06-29
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    相关资源
    最近更新 更多