【问题标题】:REST APIs over https通过 https 的 REST API
【发布时间】:2016-07-07 17:46:52
【问题描述】:

我想通过 https 托管 REST API。 REST Web 服务可能会使用 Spring 框架用 java 编写。

这些 Web 服务将由 Java 客户端(不是 Web 浏览器)访问,可能使用 org.apache.http lib。

我没有清楚地了解如何使用 SSL 证书。 我的问题是 -

  1. 通过“https”托管 REST Web 服务需要哪些配置?
  2. 客户端需要哪些配置才能访问这些“https”URI?
  3. 我需要为 REST 服务器购买受信任的 SSL 证书还是打开 java keygen 才行?
  4. REST 客户端上是否也需要相同/不同的证书副本?

【问题讨论】:

  • 看到这个话题maximporges.com/2009/11/18/…。它非常实用,但它展示了如何生成客户端和服务器证书以及配置 tomcat。
  • @Evgeni 给定的链接很有帮助.. 谢谢!

标签: java spring rest https


【解决方案1】:
  1. 无需特别配置,开启https即可。

  2. 无特殊配置,只需要注意使用检查证书的库即可。

  3. 如果你写客户端,你可以使用一个自签名的,并自定义客户端来检查它是否是你的证书。如果任何人都可以编写客户端,最好有一个公开信任的证书。警告:免费的 let's encrypt 证书不受 java 信任!

  4. 为什么要在客户端上获得证书?

旁注:如果您的 API 可公开访问,我强烈建议您不要将 http 重定向到 HTTPS,而是让 HTTP 系统地回答错误。如果您不这样做,错误地使用 http 的开发人员将不会看到错误,并且会产生安全风险。

【讨论】:

  • 抱歉,第四点还不清楚...我将自己编写 REST 服务器和 REST 客户端。我使用 https 而不是 http 的基本想法是出于安全目的发送和接收加密数据。
  • @Mishty 服务器使用证书来验证自己,客户端验证该证书。 (它存在一种模式,客户端也可以使用另一个证书来验证自己,但我认为这不是你想要的)
猜你喜欢
  • 2020-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-15
  • 2016-11-03
  • 2017-10-14
  • 1970-01-01
相关资源
最近更新 更多