国密nginx在打开websocket页面时抓包Level: Fatal, Description: Handshake Protocol,并和页面报错提示ERR_SSLVERSION_OR_CIPHER_MISMATCH和ERR_SSL_PROTOCOL_ERROR
时间: 2023-07-03 08:31:03 浏览: 173
这个问题可能是由于SSL / TLS协议版本不匹配或密码套件不支持国密算法导致的。你可以尝试以下方法解决这个问题:
1. 确认你的Nginx是否已经支持国密算法。你可以检查你的Nginx配置文件,确保已经启用了国密算法。例如:
```
ssl_ciphers EECDH+SM2:EECDH+AESGCM:EECDH+AES256:EECDH+AES128:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5;
```
2. 确认你的SSL / TLS协议版本是否正确。你可以尝试强制指定使用TLSv1.2版本,例如:
```
ssl_protocols TLSv1.2;
```
3. 确认你的客户端浏览器是否支持国密算法和SSL / TLS协议版本。如果你的浏览器不支持这些特性,你可能需要升级浏览器或安装支持国密算法和SSL / TLS协议版本的插件。
4. 检查你的数字证书是否正确。如果你的数字证书不正确或不完整,也可能导致SSL握手失败。你可以检查你的数字证书和证书链,确保它们是正确和完整的。
5. 确认你的Nginx是否正确配置了websocket。你可以检查你的Nginx配置文件,确保已经启用了websocket。例如:
```
location /ws/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
}
```
希望这些方法能够帮助你解决问题。如果问题仍然存在,请提供更多详细的错误信息和日志,这样我可以更好地帮助你。
阅读全文