使用HTTPS REST安装程序的Tomcat

时间:2016-01-09 01:30:41

标签: rest tomcat ssl https jersey

我正在使用Jersey为Tomcat编写REST服务器。我精通Java,但这是我第一次写网页,所以我希望这个问题不是愚蠢的。我已经尝试过全面搜索,但无法得出一个我理解得很清楚的答案。

我正在尝试使用HTTPS和基本身份验证,但我不知道是否必须在实际的Java中编写任何内容才能实现此目的。 Tomcat是否负责SSL信息的所有加密/解密,或者我是否必须在服务器代码中执行某些操作来处理此问题?在客户端我知道我将手动执行此操作,但我无法在服务器端找到有关如何执行此操作的任何信息。它是Tomcat设置吗?我是否必须将Tomcat设置为仅将HTTPS流量转发到我的服务器,然后它将解密并将解密的信息发送到我的服务器,在那里它将像是一个常规的未加密命令一样?

1 个答案:

答案 0 :(得分:0)

对于服务器,首先需要确保将Tomcat配置为支持HTTPS / SSL / TLS。这包括设置密钥库和编辑配置文件。您可以在SSL/TLS Configuration HOW-TO查看有关如何执行此操作的所有详细信息。请注意,链接适用于Tomcat 8.对于Tomcat 7,您应该搜索相应的文档。

完成设置后,剩下要做的就是实际使用HTTPS了,就是在Web应用程序的web.xml文件中将<transport>设置为CONFIDENTIAL。 / p>

<security-constraint>
    ...
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

如果您还没有设置web.xml安全性,那么您需要花时间阅读Securing Web Applications。还有一节介绍如何使用web.xml配置设置Basic auth。

当您获得有关基本身份验证的部分时,您会注意到<realm-name>的配置。这个领域需要使用Tomcat进行设置。这基本上是Tomcat将查找身份验证的用户存储的访问点。要阅读有关设置领域的更多信息,请参阅Realm Configuration HOW-TO(同样这是Tomcat 8链接)。有不同类型的领域可供选择,所以只需选择一个,就像JDBC领域一样。

就是这样。我认为我提供的链接不是提供教程,而是商品官员的来源,它们在解释方面比我能做得更好。如果这对你来说都是新手,你可能需要一天的时间来设置一切,但我相信你会从这些文件中学到很多东西。

另一方面,如果要进行授权,一旦在tomcat中使用角色设置域(请参阅JDBC领域部分中的示例),您可以使用web.xml中的角色授权配置(请参阅“保护Web”)应用程序“链接”或您可以使用泽西岛的基于角色的授权,这将提供更好的控制。为此,请参阅Authorization - securing resources