Jettyバージョン9.0.0.M4を使用しており、SSL接続を受け入れるように設定しようとしています。次の手順に従います http://www.Eclipse.org/jetty/documentation/current/configuring-connectors.html
うまくいくものをなんとか書きました。しかし、私が書いたコードは醜く、不必要に複雑に見えます。これを正しく行う方法はありますか?
final Server server = new Server(Config.Server.PORT);
SslContextFactory contextFactory = new SslContextFactory();
contextFactory.setKeyStorePath(Config.Location.KEYSTORE_LOCATION);
contextFactory.setKeyStorePassword("******");
SslConnectionFactory sslConnectionFactory = new SslConnectionFactory(contextFactory, org.Eclipse.jetty.http.HttpVersion.HTTP_1_1.toString());
HttpConfiguration config = new HttpConfiguration();
config.setSecureScheme("https");
config.setSecurePort(Config.Server.SSL_PORT);
config.setOutputBufferSize(32786);
config.setRequestHeaderSize(8192);
config.setResponseHeaderSize(8192);
HttpConfiguration sslConfiguration = new HttpConfiguration(config);
sslConfiguration.addCustomizer(new SecureRequestCustomizer());
HttpConnectionFactory httpConnectionFactory = new HttpConnectionFactory(sslConfiguration);
ServerConnector connector = new ServerConnector(server, sslConnectionFactory, httpConnectionFactory);
connector.setPort(Config.Server.SSL_PORT);
server.addConnector(connector);
server.start();
server.join();
ServerConnector
は SslContextFactory
でセットアップする必要があります。
HttpConfiguration で実行している残りの作業は、SSLの設定とは関係ありません。
組み込みモードでSSLを設定する良い例は、 embedded jetty examples プロジェクトで維持されています。 http://git.Eclipse.org/c/jetty/org.Eclipse.jetty.project.git/tree/examples/embedded/src/main/Java/org/Eclipse/jetty/embedded/LikeJettyXml。 Java
編集:より明確にする(ありがとうエリック)
更新:2016年6月
Eclipse Jetty Projectは、正規リポジトリをgithubに移動しました。
上記 LikeJettyXml.Java
は次の場所にあります
上記の設定が機能しない場合:Java 1.7を使用している場合は、最新バージョンにアップデートしてください。jvm1.7の最初のバージョンでは、https Webページへのアクセスで問題が発生します表示:接続がリセットされたか、接続が中止されたか、データを受信しなかったというエラー。