5.3.6.1. 为 UberJAR 配置 HTTPS
下面的示例是 UberJAR 部署的情况下配置自签发认证的 HTTPS。
- 使用 JDK 自带的
Java Keytool
工具生成密钥和认证:
keytool -keystore keystore.jks -alias jetty -genkey -keyalg RSA
- 在项目根目录配置带有 SSL 配置的
jetty.xml
文件:
<Configure id="Server" class="org.eclipse.jetty.server.Server">
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<Ref refid="Server"/>
</Arg>
<Set name="port">8090</Set>
</New>
</Arg>
</Call>
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ServerConnector">
<Arg name="server">
<Ref refid="Server"/>
</Arg>
<Arg>
<New class="org.eclipse.jetty.util.ssl.SslContextFactory">
<Set name="keyStorePath">keystore.jks</Set>
<Set name="keyStorePassword">password</Set>
<Set name="keyManagerPassword">password</Set>
<Set name="trustStorePath">keystore.jks</Set>
<Set name="trustStorePassword">password</Set>
</New>
</Arg>
<Set name="port">8443</Set>
</New>
</Arg>
</Call>
</Configure>
keyStorePassword
,keyManagerPassword
和 trustStorePassword
需要按照 Keytool
的设置来配置。
- 在构建任务的配置中添加
jetty.xml
:
task buildUberJar(type: CubaUberJarBuilding) {
singleJar = true
coreJettyEnvPath = 'modules/core/web/META-INF/jetty-env.xml'
appProperties = ['cuba.automaticDatabaseUpdate' : true]
webJettyConfPath = 'jetty.xml'
}
按照部署 UberJAR 章节的介绍构建 Uber JAR。
将
keystore.jks
跟项目的 JAR 放在一个目录下,然后启动 Uber JAR。
通过浏览器访问 https://localhost:8443/app
。