在OSGi内托管HTTPS服务器
问题描述:
我对HTTPS很陌生,我试图从OSGi包内托管一个Jetty HTTPS服务器。当我在运行配置中将下面的属性作为虚拟机参数传递时,一切正常,但由于这不是我的选择,我使用System.setProperties()方法在Activator的启动方法内提供参数。在OSGi内托管HTTPS服务器
System.setProperty("org.eclipse.equinox.http.jetty.https.port", "9090");
System.setProperty("org.eclipse.equinox.http.jetty.https.enabled", "true");
System.setProperty("org.eclipse.equinox.http.jetty.https.host", "0.0.0.0");
System.setProperty("org.eclipse.equinox.http.jetty.ssl.keystore", "/home/https/keystore.jks");
System.setProperty("org.eclipse.equinox.http.jetty.ssl.password", "password");
使用这种方法,在端口9090的HTTPS服务器工作正常,但有两个问题,
-
相同的网页也担任了80端口的HTTP,我不想要的。它的存在,甚至当我使用:
System.setProperty("org.eclipse.equinox.http.jetty.http.enabled","false");
由于不需要HTTP网页大干快上80端口(系统端口)举办,我不得不调用束为根,否则我得到java.net.SocketException异常:权限被拒绝
因为有可能是托管在80端口的其他页面,我不想完全禁用HTTP或手动在我的包注销,从80端口的服务器。
我真的很感激任何关于如何停止这种行为的指针,而无需手动修改任何其他端口。