sea*_*te7 11 linux ssl google-chrome websocket
我有一个网站,使用websocket-sharp进行客户端 - 服务器通信,并拥有Let's Encrypt颁发的证书.其他浏览器可以使用,但谷歌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编译器太旧且不支持align编译BoringSSL所必需的。
首先,我从这里安装了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
Run Code Online (Sandbox Code Playgroud)
然后,我从他们的网站(当前为5.12.0.226)下载了mono的最新发行包: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
Run Code Online (Sandbox Code Playgroud)
为了以防万一,我也这样做export MONO_TLS_PROVIDER=btls了,尽管我认为这不是必需的,但是无论您是否看一下末尾的输出,./configure它都应该告诉您是否启用了BTLS。
这也解决了最新的Firefox更新60.0.0.2的相同问题。
| 归档时间: |
|
| 查看次数: |
18388 次 |
| 最近记录: |