自己署名入り証明書を使用して、javax.net.sslを利用するSimple Nettyのhttpsサーバー実装。サーバーが起動した後、DHC by Restletを使用して要求が行われます。javax.net.ssl、httpsクライアントおよびclose_notify
io.netty.handler.ssl.SslHandler setHandshakeFailure WARNING::私が取得、サーバー側でSSLEngine.closeInbound()によりクローズ接続に例外が発生しました。 javax.net.ssl.SSLException:ピアのclose_notifyを受信する前に受信を閉じました:切り捨ての可能性がありますか? sun.security.ssl.Alerts.getSSLException(不明なソース)sun.security.ssl.SSLEngineImpl.fatalで (不明なソース)sun.security.ssl.SSLEngineImpl.fatalで (不明なソース) 日での 。 io.netty.handler.ssl.SslHandler.channelInactiveでio.netty.handler.ssl.SslHandler.setHandshakeFailure(SslHandler.java:905) でsecurity.ssl.SSLEngineImpl.closeInbound(不明なソース) (SslHandler.java:576 io.netty.channel.DefaultChannelHandlerContext $ 5.runでio.netty.channel.DefaultChannelHandlerContext.access $ 1300(DefaultChannelHandlerContext.java:38) でio.netty.channel.DefaultChannelHandlerContext.invokeChannelInactive(DefaultChannelHandlerContext.java:819) で) (DefaultChannelHandlerContext.j io.netty.channel.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:259) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:305) at io.netty.channel。 SingleThreadEventExecutor java.lang.Thread.run(不明なソース)
で、クライアント側で$ 2.run(SingleThreadEventExecutor.java:110) :
応答がありません。証明書は有効ですか?確認するにはここをクリックしてください。
Chromeのアドレスバーで同じリクエストを発行する場合、同じサーバー側の例外が発生します。 Firefoxのアドレスバーにも同様の例外が発行されますが、Firefoxは信頼できるCAの証明書ではないという警告ページを表示しています。 この例外は非常に一般的で、プロトコルの状態がであることを直接示すものではありません。これら3人のクライアント(Chrome、Firefox、DHC by Restlet)が、プロトコルをうまく再生せず、close_notifyを送信するのではなくサーバー上で消えているということですか?またはSSL RFCまたはセキュリティ指向のクライアント側設計だけが要求するクライアント側の動作ですか?
私が試したすべてのクライアントは、close_notifyの送信をスキップしたようです。おそらく、クライアントがただちに中止するのは良いことですが、詳細な理由が何であるかについてサーバーが少し困惑しています。 – matanster
こんにちは。私はDev HTTP Clientからhttpsリクエストを作成しており、クライアント側で同じ状況になっています。どのように管理しましたか? –
@AntonioAcevedo、信頼されていない証明書に接続すると、一般的なクライアントは次のように動作しているように見えます。接続を閉じてユーザーにプロンプトを出します。したがって、すべてのサーバーはクライアントが消えていくのを見ますが、クライアントはその理由をサーバーに通知しません。これは、クライアントの視点から見れば安心感があります(セキュリティ問題が発生したときに最小限の情報量を第2者に配布することが良い方法です)。だから、この状況は「解決する」ことを必要とせず、与えられたものとしてのみ受け入れる。 – matanster