0

我正在尝试启动嵌入式 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 访问该应用程序。

有人可以帮我理解上述内容吗?

4

0 回答 0