web-dev-qa-db-ja.com

Jetty 9組み込みのSSLをプログラムで構成する

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();
23
user1984205

ServerConnectorSslContextFactory でセットアップする必要があります。

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は次の場所にあります

https://github.com/Eclipse/jetty.project/blob/jetty-9.4.x/examples/embedded/src/main/Java/org/Eclipse/jetty/embedded/LikeJettyXml.Java

11
Joakim Erdfelt

Jetty 9には適切なリファレンス here があり、説明するようにJKSキーストアファイルを作成するだけです here 。コマンドkeytool -genkey -alias sitename -keyalg RSA -keystore keystore.jks -keysize 2048。何らかの理由で、突堤8で機能するものは9で機能するものではありません。

5
Bwire

上記の設定が機能しない場合:Java 1.7を使用している場合は、最新バージョンにアップデートしてください。jvm1.7の最初のバージョンでは、https Webページへのアクセスで問題が発生します表示:接続がリセットされたか、接続が中止されたか、データを受信しなかったというエラー。

0
vinga