Mac下Selenium启动Brave浏览器遇ERR_SSL_VERSION_OR_CIPHER_MISMATCH错误
问题描述
尝试用Selenium启动并控制Brave浏览器(多浏览器自动化项目的一部分),通过ChromeOptions指定Brave二进制路径,代码如下:
System.setProperty("webdriver.chrome.driver", "/Users/user/Downloads/chrome/chromedriver_mac64/chromedriver"); ChromeOptions options = new ChromeOptions(); options.setBinary("/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"); driver = new ChromeDriver(options);
浏览器能正常启动,但访问目标网站时出现SSL错误:
This site can’t provide a secure connection
www.abcxyzabcxyzabc.univer.se uses an unsupported protocol.
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
同时Eclipse控制台抛出异常:
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH (Session info: chrome=109.0.5414.119) Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
环境信息:
- Selenium版本: 3.141.59
- Brave浏览器版本: 1.47.186(Chromium: 109.0.5414.119)
- 系统: Mac OS X 11.5, x86_64
- Java版本: 17.0.1
- 驱动信息: ChromeDriver 109.0.5414.74
解决方案
1. 允许不安全证书
在ChromeOptions中添加参数,让浏览器忽略SSL证书错误:
ChromeOptions options = new ChromeOptions(); options.setBinary("/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"); // 添加忽略证书错误的参数 options.addArguments("--ignore-certificate-errors"); options.addArguments("--ignore-ssl-errors"); driver = new ChromeDriver(options);
2. 强制指定SSL协议版本
如果目标网站仅支持旧版SSL协议,可在启动参数中强制启用对应版本:
options.addArguments("--ssl-version-max=tls1.2"); options.addArguments("--ssl-version-min=tls1.0");
可根据网站实际支持的协议调整版本范围。
3. 升级Selenium版本
当前使用的Selenium 3.141.59是2018年的旧版本,对新版Brave兼容性不足。建议升级到Selenium 4.x版本,提升对现代浏览器的适配能力。
4. 匹配驱动与浏览器版本
确保Chromedriver版本与Brave内置的Chromium版本完全一致(当前Chromium为109.0.5414.119,需下载对应版本的Chromedriver),避免小版本差异引发的兼容性问题。
5. 禁用Brave安全限制
Brave默认的隐私安全设置可能拦截特殊SSL配置的网站,可通过参数禁用相关限制:
options.addArguments("--disable-web-security"); options.addArguments("--allow-running-insecure-content");
内容的提问来源于stack exchange,提问作者rajeshs
相关产品推荐
相关产品推荐

