Published signals

Nginxで動作するSSL証明書がKestrelで拒否される理由:詳細分析

Score: 7/10 Topic: Kestrel SSL certificate trust behavior analysis

実際のデバッグ事例から、KestrelのSSL証明書チェーン検証がnginxと異なり、制約のあるクライアント環境で信頼エラーを引き起こすことを解説。

中国の開発者が最近、nginxでは問題なく動作するSSL証明書が、ASP.NET CoreのクロスプラットフォームWebサーバーであるKestrelでは失敗するという問題に遭遇しました。この問題は、Kestrelを外部ゲートウェイとして公開するCYarpプロジェクトのSSL証明書を更新した際に発生しました。ブラウザは新しい証明書を受け入れましたが、クライアントデバイス(おそらく限定されたカスタムトラストストアを持つ)は拒否しました。著者はKestrelとnginxの動作を体系的に比較し、Kestrelがデフォルトでより厳格な証明書チェーン検証を実行することを発見しました。これには、nginxが不完全とみなすチェーンを受け入れることが多いのに対し、中間証明書とトラストアンカーのより厳密な検証が含まれます。この投稿では、OpenSSLを使用した証明書チェーンの検査や、`KestrelServerOptions`設定を介したKestrelの検証設定の調整など、実践的なデバッグ手順を提供しています。Kestrelをエッジまたはゲートウェイの役割で展開する.NET開発者にとって、これはブラウザだけでなくすべてのクライアントタイプでSSLトラストをテストする重要な注意喚起です。根本原因はバグではなく設計の違いであり、Kestrelは互換性よりもセキュリティを優先するため、古いクライアントや組み込みクライアントからの接続が切断される可能性があります。