クライアントサーバー通信に websocket-sharp を使用し、Let's Encryptによって発行された証明書を持つWebサイトがあります。他のブラウザでも動作しますが、Google Chrome(Linuxの場合)エラーERR_SSL_VERSION_INTERFERENCE
コンソールで。 TLS 1.3を無効にすると、ユーザーはこのエラーを回避できます。最新の安定バージョンを使用しています。
これ 答えは、問題がChrome検出 "バグのあるミドルウェア"であるが、そうではないことを示唆している'Chromeが探しているものを正確に知りません。
これはMonoの問題であることが判明しました。 Monoは新しいバージョンではBoringSSLを使用しますが、古いバージョンではデフォルトで有効になっていません。新しいLinuxディストリビューションではexport MONO_TLS_PROVIDER=btls
を実行できますが、CentOS 6(バージョン4.4)のgccコンパイラは古すぎ、BoringSSLのコンパイルに必要なalign
をサポートしていないため、うまくいきませんでした。
最初に、ここからの指示とともにgcc 4.8をインストールしました: https://Gist.github.com/stephenturner/e3bc5cfacc2dc67eca8b
wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
Sudo yum install devtoolset-2
scl enable devtoolset-2 bash
それから私は彼らのウェブサイトからモノの最新リリースパッケージをダウンロードしました(現在5.12.0.226): http://www.mono-project.com/docs/compiling-mono/linux/
wget https://download.mono-project.com/sources/mono/mono-5.12.0.226.tar.bz2
tar xvf mono-5.12.0.226.tar.bz2
cd mono-5.12.0.226
./configure --prefix=/usr/local
make
make install
念のため、export MONO_TLS_PROVIDER=btls
も行いましたが、必要ではないと思いますが、./configure
の最後の出力を見ても、BTLSが有効になっているかどうかはわかります。
これにより、最近のFirefoxアップデート60.0.0.2の同じ問題も修正されました。