You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GoDaddy Tomcat部署的Spring Boot WAR应用中启用HTTPS

问题

我有一个部署在GoDaddy Tomcat中的Spring Boot WAR应用,现需为其启用HTTPS。我已在域名上完成SSL证书安装,HTTPS可正常访问,DNS与SSL证书均由GoDaddy管理。我已下载Tomcat证书文件,包含randomhex.crt、randomhex.pem、gd_bundle-g2-g1.crt、gdig2.crt.pem,并通过以下三步命令生成了keystore.jks和keystore.p12:

步骤1:

keytool -import -trustcacerts -alias intermediate -file gd_bundle-g2-g1.crt -keystore keystore.jks

使用密码password1

步骤2:

keytool -import -trustcacerts -alias 'alias1' -file e1......7.crt -keystore keystore.jks

使用密码password1

步骤3:

keytool -importkeystore -srckeystore keystore.jks -destkeystore keystore.p12 -srcstoretype JKS -deststoretype PKCS12 -deststorepass 'password2' -srcalias 'alias1' -destalias 'alias2'

使用密码password1

我知晓需将keystore.p12放入Spring Boot项目的resource目录,并配置以下SSL属性,但不确定基于上述命令应设置哪些值,请帮忙配置:

server:
  ssl:
    key-store: classpath:keystore.p12
    key-store-password: ?
    key-store-type: ?
    key-alias: ?
    key-password: ?
    enabled: true
  port: ?

另外,我是否需要对TOMCAT服务器进行额外配置才能让该Spring Boot应用的HTTPS生效?

解决方案

一、SSL配置参数填充

根据你提供的keytool命令,对应的配置值如下:

server:
  ssl:
    key-store: classpath:keystore.p12
    key-store-password: password2  # 对应步骤3中的deststorepass参数值
    key-store-type: PKCS12         # 对应步骤3中的deststoretype参数值
    key-alias: alias2              # 对应步骤3中的destalias参数值
    key-password: password1        # 原JKS中alias1的密码(和keystore密码一致,步骤2使用的是password1)
    enabled: true
  port: 443                        # HTTPS默认端口,也可使用自定义端口如8443

参数说明:

  • key-store-password:取步骤3指定的deststorepass值password2,是PKCS12密钥库的访问密码
  • key-store-type:明确设置为PKCS12,对应生成的密钥库格式
  • key-alias:取步骤3指定的destalias值alias2,是PKCS12中证书条目的别名
  • key-password:步骤2导入证书到JKS时未单独设置密钥密码,因此和原JKS密码password1一致
  • port:HTTPS标准端口为443,若用非标准端口,访问时需加上端口号

二、Tomcat服务器额外配置说明

由于你是将Spring Boot以WAR包形式部署到Tomcat,且已在GoDaddy完成域名SSL证书安装,分两种情况处理:

  1. 推荐:由Tomcat统一处理HTTPS请求

    • 修改Tomcat的conf/server.xml配置文件,添加HTTPS连接器,指定密钥库信息,示例配置如下:
      <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                 maxThreads="150" SSLEnabled="true">
          <SSLHostConfig>
              <Certificate certificateKeystoreFile="你的密钥库路径/keystore.p12"
                           type="RSA"
                           certificateKeystorePassword="password2"
                           certificateKeystoreType="PKCS12"
                           certificateAlias="alias2"/>
          </SSLHostConfig>
      </Connector>
      
    • 这种情况下,Spring Boot应用的SSL配置可简化(甚至无需设置),因为HTTPS由Tomcat层面处理,应用只需接收Tomcat转发的HTTP请求即可,更符合WAR部署的常规做法。
  2. 让Spring Boot自身处理HTTPS

    • 保持上面的Spring Boot SSL配置不变,但需确保Tomcat未配置HTTPS连接器,或两者端口不冲突。不过这种方式不推荐,容器统一处理SSL层更便于证书和端口管理。

内容的提问来源于stack exchange,提问作者KJEjava48

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:56:06