你如何通过https启动java servlet?

时间:2012-04-10 16:27:23

标签: java tomcat servlets ssl

我正试图在eclipse中运行tomcat上的一个servlet。当我在服务器上运行时,servlet运行并为我提供如下链接:

“HTTP://本地主机:8443 / AuthServer /服务器”

我已按如下方式为SSL配置了Tomcat服务器:

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" keystoreFile="C:\Users\owner\.keystore" keystorePass="sheetalkshirsagar">

当我在服务器上运行servlet时,它仍然使用http。 我希望我的servlet链接为“https:// ...”而不是“http:// ..”。你是怎么做到的?

3 个答案:

答案 0 :(得分:6)

如果您希望在向该servlet发送请求时确保使用https协议,则需要更改Web应用程序中的WEB-INF/web.xml文件。 在您的情况下添加此配置参数:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>AuthServer</web-resource-name>
        <url-pattern>/Server</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

答案 1 :(得分:4)

TOMCAT_HOME/conf文件夹中,有一个名为web.xml的文件。在那里,您必须添加security-constraint元素。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>secured page</web-resource-name>
        <url-pattern>/...</url-pattern>
    </web-resource-collection>
    <user-data-constraint>
        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
    </user-data-constraint>
</security-constraint>

确保<url-pattern>与您希望获得保护的路径相匹配。

答案 2 :(得分:0)

如果我正确理解您的问题,您将从您的servlet提供的网页发布http的网址。
如果您需要将请求更改为https,则应该redirect您的普通http连接器(在端口808080中)端口443的连接器。
如果你谷歌tomcat redirect http to https,你会发现很多链接,例如redirect tomcat to https

但如果您对真正的安全感兴趣,我会建议您不要重定向