1

jetty http サーバーで https を使用するように restlet サーバーを構成しました。構成は非常に簡単です。

  boolean https = c.getBoolean(CfgKeyNames.HTTPS, true);
  Protocol protocol = https ? Protocol.HTTPS : Protocol.HTTP;

  Component component = new Component();

  ServerList servers = component.getServers();
  for (Integer port : ports) {
    Server server = servers.add(protocol, port);
    if (https) {
      Series<Parameter> parameters = server.getContext().getParameters();
      parameters.add("sslContextFactory", PkixSslContextFactory.class.getName());
      parameters.add("keystorePath", Utils.getAbsolutePath(c, CfgKeyNames.KEYSTORE_PATH, "conf", "keystore.jks"));
      parameters.add("keystorePassword", c.getProperty(CfgKeyNames.KEYSTORE_PASSWORD));
      parameters.add("keyPassword", c.getProperty(CfgKeyNames.KEY_PASSWORD));
      parameters.add("keystoreType", c.getProperty(CfgKeyNames.KEYSTORE_TYPE, "jks"));
    }
  }

そして、それはうまくいきます。ただし、http リクエストが送信されても​​何も返されません。fiddler を実行すると、次の応答が報告されます。

HTTP/1.0 200 This buggy server did not return headers

(応答は Fiddler によって生成されました。)

とにかく、この問題をトラブルシューティングするにはどうすればよいですか?

ありがとう。

PS

Restlet 2.0.14 を使用しています (Jetty 7.1 に付属)

編集

WireShark を使用してトラフィックをキャプチャしました。テキストとしての完全なダンプは、ここで入手できます - http://pastebin.com/Yw80qvcT

私が使用したフィルターはtcp.port == 11111 && ip.addr == 184.73.151.24、ポート 11111 の amazon クラウド内の AWS マシンでサーバーが実行されている場所です。

EDIT2

これがバイナリ キャプチャ ファイルです - http://dl.dropbox.com/u/30319655/gl.pcap 今回のポートは 443 です。

4

0 に答える 0