私の目標:私はJetty Embeddedの統合を進めており、使いやすくなっています。 interfaceは、とりわけ、Java KeyStoreを使用せずに、TLS証明書の外部ソースの統合を可能にします。JKSを使用しない埋め込みJettyのTLS
これにより、分散型Webサービス(私の場合はexperimental, self-hosted CDN)を構築する際の柔軟性が向上します。
ただし、統合の構築に問題があります。スタブの実装はin this repositoryです。
私が試したこと:key managerとtrust managerを置き換えて、その中のすべての機能にブレークポイントを設定しようとしました。ただし、サーバーにアクセスしようとすると、これらのブレークポイントは決してトリガーされません。代わりに、私はこのエラーに遭遇しています:
javax.net.ssl.SSLHandshakeException: no cipher suites in common
at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1478)
at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535)
at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:813)
at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.fill(SslConnection.java:621)
at org.eclipse.jetty.server.HttpConnection.fillRequestBuffer(HttpConnection.java:322)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:231)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:112)
at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:261)
at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:150)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:112)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:672)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:590)
at java.lang.Thread.run(Thread.java:748)
私は、しかし、多くの幸運なしで、キーストアから証明書を「標準」突堤のセットアップを分析しようとしています。私は、Jettyが上書きすべき暗号/証明書情報を取得しているところを見つけられません。
私の質問 JettyにJava KeyStoreとTrustStoreの代わりにmy own certificate sourceを使用させるにはどうすればよいですか?
この例外は通常、サーバーが秘密キーと一致する証明書を見つけられなかったことを意味します。明らかに 'KeyManager'が正しくインストールされていないか、またはこれより前に呼び出されていたはずです。 – EJP
ありがとうございます、私はキーマネジャが "在庫"バージョンにどのようにインストールされているかを自分のものと比較して追跡しようとします。 – Janoszen