![Tomcat/Spring SSL 配置](https://linux22.com/image/549332/Tomcat%2FSpring%20SSL%20%E9%85%8D%E7%BD%AE.png)
我正在尝试将 Spring 应用程序配置为使用从 CA 购买的 SSL 证书。我按照Tomcat 6.0 配置并将密钥导入我的 Tomcat 密钥库,并在 server.xml 中取消注释 SSL 连接器。当我启动 Tomcat 时,我在 Tomcat 日志中看到连接器在端口 8443 上启动,但是当我转到 https://example.com:8443 或 http://example.com:8443 或 https://example.com(没有空格 - 我没有发布链接的声誉)时,它会超时。我需要做哪些其他配置才能为我的 Spring 应用程序启用 SSL。我必须更改应用程序配置吗?
我还希望只有部分 URL 通过 SSL 访问(登录、编辑个人资料等)。如何在 Spring 配置中允许这样做?如果我必须让所有 URL 都通过 SSL 访问,那可以,但不是理想的做法。我还没有找到任何针对 Spring 的教程。
答案1
Tomcat 密钥库中需要包含两个内容:1. 生成的私钥和公钥对(通常由 keytool -genkeypair 命令生成)。2. 签署公钥的证书(使用 keytool -importcert 命令从 CA 的答复中导入)。
假设以上两个是正确的,您可能想找出有关连接超时原因的更多详细信息。启用 SSL/TLS 的端口是否可在 example.com:8443 上访问,还是正在监听其他网络接口?此外,为连接器指定的所有属性是否正确(Tomcat 日志会提供一两个提示)?最后,您可能想使用javax.net.debug 标志在启动JVM时判断是否存在其他导致连接超时的原因。
答案2
您不会使用 web.xml 文件中的标准安全约束来执行特定于 URI 的 SSL 配置吗?