【问题标题】:force ssl in tomcat 7在tomcat 7中强制使用ssl
【发布时间】:2012-09-09 01:04:21
【问题描述】:

我想强制所有用户对我的应用程序中的所有页面使用 SSL。我正在使用 mavan 3 并在 maven 中使用了这个插件:

        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.0-SNAPSHOT</version>
            <configuration>
                <server>TomcatServer</server>
                <httpsPort>8443</httpsPort>
                <keystoreFile>-- My keystore path --</keystoreFile>
                <keystorePass>-- My keystore pass --</keystorePass>
                <path>/</path>
            </configuration>
        </plugin>

通过 maven (mvn tomcat7:run) 运行服务器时,我的服务器日志是这样的:

...
INFO: Initializing Spring root WebApplicationContext
Sep 16, 2012 9:55:17 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Sep 16, 2012 9:55:17 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8443"]

但是,当我使用 https 访问该页面时,我在 chrome 中收到 SSL 连接错误,并且“SSL 收到了超出最大允许长度的记录”。在火狐中。

1) 我相信 maven 在战争中嵌入了 Tomcat 7。因此,没有可以手动配置 SSL 的 server.xml 文件。如何在我的 pom.xml 中配置 SSL?

2) 如何确保所有请求都转发到 8443?

【问题讨论】:

    标签: security maven ssl tomcat7


    【解决方案1】:

    我遇到了同样的问题,所以我单独托管了 Tomcat,然后通过使用 JDK keytool 生成 jks 文件在 server.xml 中配置了 ssl 证书。 因此,所有应用程序都可以通过安全的 https 链接托管在同一个 tomcat 中。

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                   maxThreads="1500" SSLEnabled="true" scheme="https" secure="true" keystoreFile="C:\apache-tomcat-8\conf\filename.jks" keystorePass="password"
    clientAuth="false" sslProtocol="TLS" > 
    </Connector>
    

    server.xml文件中加入以上代码,将8443端口转发到443。

    【讨论】:

      【解决方案2】:

      我感觉“服务器”属性可能会导致您的问题。根据 Tomcat 插件文档,这不是一个选项。这是 Tomcat 'run' 命令的插件选项列表(很难找到)。 http://mojo.codehaus.org/tomcat-maven-plugin/run-mojo.html 祝你好运。我有一个类似的问题,虽然不一样。我希望这对你有用。

      【讨论】:

        【解决方案3】:

        这是您应该为 Tomcat 7 配置 SSL 的方式:http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

        然后,您需要将 server.xml 添加到这个嵌入式 Tomcat,由插件启动:http://tomcat.apache.org/maven-plugin-2.0-SNAPSHOT/tomcat7-maven-plugin/run-mojo.html#serverXml

        然后,从 8080 到 8443 的转发应该由您的应用程序内部完成,可能在 servlet 侦听器中]。另见:How to implement a HTTPS login page in a web application?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-11-22
          • 1970-01-01
          • 1970-01-01
          • 2013-08-25
          • 2013-11-23
          • 1970-01-01
          • 2011-09-12
          • 1970-01-01
          相关资源
          最近更新 更多