我正在尝试启动嵌入式 Jetty 并使其仅启用 SSL。这样用户将只能在端口 8443 上访问它。
代码如下所示:
HttpConfiguration http_config = new HttpConfiguration();
http_config.setSecureScheme( "https" );
http_config.setSecurePort( 8443 );
http_config.setOutputBufferSize( 32768 );
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory
.setKeyStorePath( "./path_to_keystore/keystore.p12" );
sslContextFactory.setKeyStorePassword( "pass" );
sslContextFactory
.setTrustStorePath( "./path_to_truststore/trustore.jks" );
sslContextFactory.setTrustStorePassword( "changeit" );
HttpConfiguration https_config = new HttpConfiguration( http_config );
https_config.addCustomizer( new SecureRequestCustomizer() );
ServerConnector https = new ServerConnector( m_jettyServer, new SslConnectionFactory( sslContextFactory,
"http/1.1" ), new HttpConnectionFactory( https_config ) );
https.setPort( 8443 );
https.setIdleTimeout( 500000 );
m_jettyServer.setConnectors( new Connector[] { https } );
m_jettyServer.setHandler(createHandlerFromWebAppContext());
Jetty 服务器处理程序是应用程序的 web.xml。
完成上述操作后,我尝试在以下位置访问网络应用程序
https://www.my_web_app_localhost:8443
但此端口没有网页。
然后我正在访问
http://www.my_web_app_localhost:8888
并且由于某种原因可以访问该网页。
我真的很困惑,因为我明确设置了端口。我真的不明白为什么可以在 8888 访问该应用程序。
有人可以帮我理解上述内容吗?