2016-03-21 159 views
1

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

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

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

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

请参阅本主题http://www.maximporges.com/2009/11/18/configuring-tomcat-ssl-clientserver-authentication/。它非常实用,但它显示了如何生成客户端和服务器证书并配置tomcat。 –

+0

@Evgeni鉴于链接是非常有益的..谢谢! – Mishty

回答

1
  1. 没有特别的配置,你只需要https激活。

  2. 没有特别的配置,你只需要小心使用检查证书的库。

  3. 如果您编写客户端,您可以使用自签名客户端,并自定义客户端以检查它是否是您的证书。如果有人可以写一个客户,最好有一个公开信任的证书。警告:免费让我们加密证书不被Java信任!

  4. 为什么你想要在你的客户端的证书?

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

+0

对不起,但仍然不清楚第四点...我将自己编写REST服务器以及REST客户端。我使用https而不是http的基本思想是为了安全目的发送和接收加密数据。 – Mishty

+0

@Mishty服务器使用证书对自己进行身份验证,客户端验证该证书。 (它存在一种模式,客户可以使用另一证书对自己进行身份验证,但我认为这不是您要查找的模式) – Tom