我使用的环境:
jetty-distribution-9.4.43.v20210629
jdk1.8
1、命令行下使用jdk自带的加密工具keytool生成秘钥keystore:
keytool -keystore keystore -alias jetty -genkey -keyalg RSA
2、生成证书jetty.crt:
keytool -export -alias jetty -file jetty.crt -keystore keystore
3、生成OBA文件:
java -cp jetty-util-9.4.43.v20210629.jar org.eclipse.jetty.util.security.Password <your password>
PS:jar包对应自己的jetty版本。密码填写之前的密码。
4、生成的秘钥和证书放到etc目录下
5、start.ini文件末尾追加
--module=ssl
jetty.server.dumpBeforeStop=
etc/jetty-ssl.xml
etc/jetty-https.xml
6、设置etc/jetty-ssl.xml把8443改成443端口
<Set name="host"><Property name="jetty.ssl.host" deprecated="jetty.host" /></Set>
<Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="443" /></Set>
7、配置etc/jetty-ssl-context.xml
<Set name="KeyStorePath">
<Property name="jetty.sslContext.keyStoreAbsolutePath">
<Default>
<Property name="jetty.base" default="." />/<Property name="jetty.sslContext.keyStorePath" deprecated="jetty.keystore" default="etc/keystore"/>
</Default>
</Property>
</Set>
<Set name="KeyStorePassword"><Property name="jetty.sslContext.keyStorePassword" deprecated="jetty.keystore.password" default="密码"/></Set>
<Set name="KeyStoreType"><Property name="jetty.sslContext.keyStoreType" default="JKS"/></Set>
<Set name="KeyStoreProvider"><Property name="jetty.sslContext.keyStoreProvider"/></Set>
<Set name="KeyManagerPassword"><Property name="jetty.sslContext.keyManagerPassword" deprecated="jetty.keymanager.password" default="密码"/></Set>
<Set name="TrustStorePath">
<Property name="jetty.sslContext.trustStoreAbsolutePath">
<Default>
<Property name="jetty.base" default="." />/<Property name="jetty.sslContext.trustStorePath" deprecated="jetty.truststore" default="etc/keystore"/>
</Default>
</Property>
</Set>
<Set name="TrustStorePassword"><Property name="jetty.sslContext.trustStorePassword" deprecated="jetty.truststore.password"/></Set>