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

配置Maven Jetty插件在8443(TLS)端口运行遇阻求助

解决Maven Jetty插件配置TLS(8443端口)的问题

一、纯Maven Jetty插件的正确XML配置(非Spring Boot场景)

你提到官方文档建议用XML配置但密钥库路径没配对,大概率是路径引用的问题。这里给你一个完整的可运行配置示例,用Maven内置变量来避免路径错误:

在你的pom.xml中添加Jetty插件配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>9.4.x</version> <!-- 替换成你实际使用的Jetty版本 -->
            <configuration>
                <!-- 可选:保留HTTP端口用于测试 -->
                <httpConnector>
                    <port>8080</port>
                </httpConnector>
                <httpsConnector>
                    <port>8443</port>
                    <sslContextFactory>
                        <!-- 用${project.basedir}指向项目根目录,避免相对路径混乱 -->
                        <keyStorePath>${project.basedir}/src/main/resources/keystore.jks</keyStorePath>
                        <keyStorePassword>你的密钥库密码</keyStorePassword>
                        <keyManagerPassword>你的密钥密码</keyManagerPassword>
                        <!-- 可选:如果需要信任客户端证书,添加信任库配置 -->
                        <trustStorePath>${project.basedir}/src/main/resources/truststore.jks</trustStorePath>
                        <trustStorePassword>你的信任库密码</trustStorePassword>
                    </sslContextFactory>
                </httpsConnector>
            </configuration>
        </plugin>
    </plugins>
</build>
  • 确保你的keystore.jks确实放在src/main/resources目录下,或者根据实际位置调整keyStorePath。
  • 用${project.basedir}这个Maven内置变量能避免因运行目录不同导致的路径错误。

二、Spring Boot + Jetty场景(解决application.properties不生效问题)

你尝试用Spring Boot的配置文件但Jetty不识别,是因为Spring Boot默认用Tomcat,切换到Jetty需要先调整依赖,再用适配后的配置参数:

  1. 先在pom.xml中排除Tomcat,引入Jetty依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
  1. 然后在application.properties中配置Jetty的SSL参数(这些是Spring Boot适配Jetty后的标准属性):
# 直接将服务端口设为8443
server.port=8443
server.ssl.enabled=true
# 从类路径加载密钥库(对应src/main/resources目录)
server.ssl.key-store=classpath:keystore.jks
server.ssl.key-store-password=你的密钥库密码
server.ssl.key-password=你的密钥密码
# 可选:信任库配置
server.ssl.trust-store=classpath:truststore.jks
server.ssl.trust-store-password=你的信任库密码
  • 配置完成后,Spring Boot会自动把这些参数传递给嵌入式Jetty,启用8443端口的TLS服务。

额外提示:生成自签名证书(如果还没有密钥库)

如果还没有可用的密钥库,用JDK自带的keytool命令生成即可:

keytool -genkey -alias jetty -keyalg RSA -keystore keystore.jks -storepass 你的密码 -keypass 你的密码 -validity 3650

执行后会在当前目录生成keystore.jks,把它放到src/main/resources目录就能被上面的配置识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:24:14