将启用SSL的Java SpringBoot战争部署到外部Tomcat服务器

时间:2018-02-17 11:52:30

标签: tomcat ssl spring-boot

我有一个Spring启动应用程序,它是一个支持SSL的应用程序,我可以通过localhost访问它。 “https://localhost:8443/showPage”就像这样。对于localhost,我创建了SSL证书,并在application.properties中提供了详细信息,如下所示

server.port: 8443
server.ssl.key-store: classpath:keystore.p12
server.ssl.key-store-password: 123456
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat

这适用于localhost。我想将war部署到已启用SSL的tomcat服务器。为此我改变了下面的属性

server.port: 8443
server.ssl.key-store: /opt/tomcat/keystore/keystorefile.jks
server.ssl.key-store-password: Rv$@1234
server.ssl.keyStoreType: JKS
server.ssl.keyAlias: tomcat

但我在访问任何请求时都会收到以下图片。我正确地打电话给了我。不是如图所示。像这样:“https://ipaddress:8443/war_name/showPageenter image description here

我的控制器接受请求 @RequestMapping( “SHOWPAGE”)

1 个答案:

答案 0 :(得分:0)

我花了几天时间寻找答案,所以我将发布解决方案供其他人在这里关注。我将Spring Boot 2与运行在centOs 8上的外部tomcat 9一起使用。

  1. 获取SSL证书,我使用带有密码的keytool创建了自签名证书。

  2. 将jks和p12文件存储在apache服务器上。我将其存储在/ opt / tomcat

  3. 编辑您的apache server.xml文件,使其具有以下内容。

     <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
      maxThreads="150" scheme="https" secure="true"
      keystoreFile="/opt/tomcat/keystore.p12" keystorePass="password" 
      clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1.2,TLSv1.1"/>
    
  4. 重新启动Tomcat

  5. 打开8443的防火墙端口并重新启动防火墙守护程序

      firewall-cmd --zone=public --permanent --add-port 8443/tcp
      firewall-cmd --reload
    

知道步骤是非常快的!只是不要忘记任何事情。