2

サーブレット 3.0 と Jetty を使用して HTTPS プロキシ サーバーを作成しています。

jetty で HTTPS Connect を処理するにはどうすればよいですか?

現在私は使用してjetty-maven-pluginおり、私のプラグイン構成は次のようになります-

<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<configuration>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <webApp>
        <contextPath>/</contextPath>        
    </webApp>
    <scanIntervalSeconds>1</scanIntervalSeconds>    
    <connectors>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>9090</port>
            <maxIdleTime>60000</maxIdleTime>
        </connector>
        <connector implementation="org.eclipse.jetty.server.ssl.SslSelectChannelConnector">
            <port>9090</port>
            <keystore>src/keystore.jks</keystore>
            <keyPassword>test</keyPassword>
            <password>test</password> 
        </connector>        
    </connectors>    
</configuration>
/plugin>

はい - 同じポートで HTTP と HTTPS を処理したいです。Jetty を起動すると、問題なく起動します。

2013-04-21 15:15:03.750:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:9090
2013-04-21 15:15:03.912:INFO:oejus.SslContextFactory:Enabled Protocols [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2] of [SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]
2013-04-21 15:15:03.917:INFO:oejs.AbstractConnector:Started SslSelectChannelConnector@0.0.0.0:9090
Started Jetty Server

私は doGet と doPost を @Override しましたが、HTTP リクエストを送信すると、両方のメソッドが正常に起動します。ただし、クライアントが HTTPS Connect を送信したときにそれらのいずれも起動されません。SSL トラフィックを検査できるように、HTTPS Connect をインターセプトしたいと考えています。

それを機能させる方法はありますか?

更新-最初の問題を見つけたと思います。SelectChannelConnector と SslSelectChannelConnector がポート 9090 で開始されていることをログで確認できますが、SSL コネクタは起動されていません。

私の質問は、サーブレット 3.0 と Jetty を使用して同じポートで HTTP と HTTPS の両方を処理することは可能ですか?

4

1 に答える 1

0

いいえ、それは不可能です (実際には可能ですが、そうすべきではありません)。すべてのコネクタには独自のポートが必要です。

ただし、web.xml で security-constraints を使用して、http リスナーへのすべての接続を https ポートにリダイレクトできます。しかし、それはあなたが探しているものではないようです。

1 つのポートに 2 つのコネクタをセットアップしようとすると、jetty が起動時に例外をスローしないのはなぜでしょうか。それを検証します。

于 2013-04-22T10:51:53.650 に答える