当我使用命令行标志打开 chrome 或 chromium 时--host-rules=MAP * XX.XX.XX.XX
,SSL 握手失败:
[14865:14877:0908/163850.072936:错误:ssl_client_socket_impl.cc(963)]握手失败;返回 -1,SSL 错误代码 1,net_error -200
背景是这样的:有些 Web 服务器通常在节点平衡器后面运行。为了运行一系列测试,我想绕过节点平衡器并单独向每个服务器发出请求,并通过 IP 地址指定服务器。(我需要将此设置部署到其他各种工作站,并且不能使用需要 root 用户权限的解决方案。)
看起来,虽然我输入https://
mysite.com
了 Chrome 地址栏,但 Chrome 在 SSL 握手期间使用了 ip 地址XX.XX.XX.XX
,当然,SSL 证书的 CN 与其不匹配。
有没有办法:
- 让 Chrome 将给定的主机名解析为给定的 IP 地址
- 支持SSL
- 无需root(例如编辑
/etc/hosts
)?
答案1
我自己也遇到过这个问题,但根据https://datacadamia.com/web/browser/chrome#dns_resolver,该开关已重命名为--host-resolver-rules
。
使用当前交换机名称解决了 SSL 握手错误。