OpenSSL/Kestrelで使用可能な暗号スイートをLinuxドッカーコンテナから変更するにはどうすればよいですか?我々はPowerShellの KestrelとOpenSSL暗号スイート
- 我々は(02c1d87を構築ドッカーバージョン17.06.0-CE)のLinuxドッキングウィンドウコンテナを使用することはASPをホスティング:まず
、いくつかの環境の詳細を開始することができますC#で書かれた.Net Core(netcore 1.1)ウェブアプリ。
- .Net Standard 1.4/1.6に対して大きく書かれていますが、2.0への移行が予定されています。
- 私たちはドッカーコンテナのWebサーバーとしてKestrelを使用しています。
- Kestrelは私が理解する限りopenSSL(1.0.1)をフードの下で使用しています。どんなに私は、(ここでTls12を設定したもの値
SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11,
:キー行はこのこと
builder.UseKestrel(o => o.UseHttps(new HttpsConnectionFilterOptions { SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11, CheckCertificateRevocation = true, ClientCertificateMode = ClientCertificateMode.AllowCertificate ServerCertificate = new X509Certificate2(certificate.Pfx, certificate.Password) })) .UseUrls(bindTo);
:私のProgram.csはチョウゲンボウを設定し、このようなものを、見える
Tls11、Tls、またはこれらのサブセット)、暗号スイートが接続に使用できるかどうかには影響しないようです。古いプロトコルでRC4暗号が利用できるようになったため、私のURLはsslLabsの報告書に記載されていますが、これはGrade Bで保護されています。私は並べ替えるべき問題であり、TLS1.1と1.2だけをサポートすれば解決できると思います。
たとえば、上記のように、私はTLS 1.0については言及していませんが、報告書にはそれがあります。
実際にコードを使用しているのですか、それともどこか他の場所から利用可能な暗号を取得していますか?確かに、SslProtocolsプロパティの値は違いはありません。
Apacheを使用している場合、設定ファイル(httpd.conf)を使用して利用可能な暗号スイートを設定できるので、kestrelに同じことをするファイルがあるかもしれないと思ったが、見つけられなかった。一般的なコンセンサスは、それがコードで処理されるように思われる。私が見る限り、私は何をしましたか?
暗号管理を処理するためにインターネットに接続されたWebサーバーとしてApacheを使用することを検討しましたが、これは要求をkestrelに委譲しますが、これはこのプロジェクトの契約違反となります。乗り継ぎの各段階でkestrelに転送するために再暗号化する前に、Apacheでデータを復号化するプロセスは実行可能ではありません。
私はおそらく、OpenSSLにApacheと同じ設定ファイルがあり、必要なものを実現するためにその設定を変更できると考えました。
/usr/lib/ssl/openssl.cnf
/etc/ssl/openssl.cnf
しかし、それらのいずれもが、私は、Apacheの設定ファイルを比較する際に参照するために期待される暗号スイートのいずれかのリストを持っている:私は、我々のファイルシステムでこれらの2つのファイルを見つけました。または、おそらくそれが、私はちょうどファイル形式を誤解している?
利用可能な暗号スイート「SSL_CTX_set_cipher_list」を構成するために使用できるこの方法にも出くわしましたが、これはC++でのみ利用可能であり、見つけたC#用の同様の機能/ラッパーはありません。私は、C++プログラムを書いて、ウェブサイトを設定する前にドッカーにプッシュするときに、暗号スイートをセットアップすることは可能でしょうか?しかし、これは本当にハッキリと聞こえますが、私はウェブサイトをそれ自身で処理することを好むでしょう。
私はすぐにアイデアが不足しています。だから、あなたが持っているすべての入力は非常に高く評価されます。あなたが提供できるお手伝いをありがとう!