You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重装OpenSSL后出现ERR_SSL_VERSION_OR_CIPHER_MISMATCH问题求助

Ubuntu 20.04 卸载OpenSSL后HTTPS项目访问故障排查方案

问题背景

在Ubuntu 20.04系统中卸载原生OpenSSL并安装低版本后,系统崩溃并修复登录问题、安装适配版本后,本地HTTPS项目仍无法访问:Chrome提示ERR_SSL_VERSION_OR_CIPHER_MISMATCH,Firefox提示404错误。已尝试替换Glassfish自签名证书、降低Firefox最低TLS版本至1、修改openssl.cnf添加MinProtocol = TLSv1和CipherString = DEFAULT:@SECLEVEL=1,但问题依旧。

非重装系统的解决办法

1. 验证Glassfish SSL配置与OpenSSL的兼容性

  • 检查Glassfish的SSL协议与套件配置:
    打开Glassfish的domain.xml配置文件(通常在/glassfish/domains/domain1/config/路径下),查找<ssl>节点,确认ssl-enabled-protocols包含你需要的TLS版本(如TLSv1,TLSv1.1,TLSv1.2),同时确保cipher-suite配置与openssl.cnf中的CipherString匹配。
  • 强制重启Glassfish服务:
    执行systemctl restart glassfish(若用systemd管理)或/glassfish/bin/asadmin restart-domain,确保配置生效。

2. 修复系统级OpenSSL依赖链

  • 重新安装核心SSL依赖:
    执行sudo apt-get install --reinstall libssl1.1 openssl(Ubuntu 20.04默认依赖libssl1.1),强制修复卸载过程中损坏的依赖文件。
  • 验证版本一致性:
    执行openssl version查看当前版本,再执行ldd $(which openssl)确认链接的库文件版本与显示版本一致,避免出现版本不兼容的情况。

3. 单独排查Firefox 404错误

  • 确认访问地址有效性:
    404错误大概率与SSL无关,检查是否输入了正确的端口(Glassfish默认HTTPS端口为8181)、项目路径,避免拼写错误。
  • 清理Firefox缓存与旧证书:
    进入Firefox设置→隐私与安全,清除浏览器缓存;再进入“证书”→“查看证书”,删除之前生成的旧自签名证书,重新导入新证书并信任。

4. 深度调试SSL握手过程

  • 用openssl s_client抓详细握手日志:
    执行openssl s_client -connect localhost:8181 -tls1 -debug,查看握手阶段的具体错误(如协议协商失败、套件不支持等),针对性调整配置。
  • 用curl抓请求细节:
    执行curl -v -k https://localhost:8181(-k忽略证书验证),查看请求过程中是否有握手失败的明确提示,比如no suitable signature algorithm,据此调整CipherString配置。

5. 修复系统OpenSSL配置的全局生效问题

  • 确认配置文件路径与更新:
    Ubuntu 20.04的openssl.cnf位于/etc/ssl/openssl.cnf,修改后执行sudo update-ca-certificates更新系统证书配置。
  • 检查应用局部配置覆盖:
    确认Glassfish没有单独指定SSL配置文件(部分应用会加载自身的openssl配置),导致系统级配置未生效。

内容的提问来源于stack exchange,提问作者Sergei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:37:50