我正在尝试配置jetty以在Apache Karaf OSGI容器中使用SSL。HTTP工作,但HTTPS不工作。有什么问题吗?
我的配置细节如下:
等/jetty.xml
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host">
<Property name="jetty.host" />
</Set>
<Set name="port">
<Property name="jetty.port" default="8282" />
</Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">2</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
<Arg>
<New class="org.eclipse.jetty.http.ssl.SslContextFactory">
<Set name="KeyStore">/opt/keystore</Set>
<Set name="KeyStorePassword">password</Set>
<Set name="KeyManagerPassword">password</Set>
<Set name="TrustStore">/opt/keystore</Set>
<Set name="TrustStorePassword">password</Set>
</New>
</Arg>
<Set name="port">8443</Set>
<Set name="maxIdleTime">30000</Set>
</New>
</Arg>
/etc/org.ops4j.pax.web.cfg文件中的条目
org.ops4j.pax.web.config.file=${karaf.home}/etc/jetty.xml
要启用SSL,您只需要通过使用httpService配置来启用它。为此,编辑etc/org.ops4j.pax.web.cfg并添加/修改以下条目。
org.osgi.service.http.secure.enabled=true
关于如何配置Pax Web和httpService的更多细节可以在官方文档中找到,或者集成测试