我正在尝试加密 Chrome 与 Squid 转发代理之间的通信。我提供了一个自签名证书,但显然它有问题,因为 Chrome 失败并出现 ERR_PROXY_CERTIFICATE_INVALID。
是的,我已经将自签名证书安装到其中Trusted Root Certification Authorities
。
有没有办法从 Chrome 获得关于它不喜欢该证书的哪些方面的提示?
答案1
我最终提交了一份错误报告对于这个问题,他们的建议是:
- 禁用 chrome 中的代理配置
- 像访问网页一样访问代理服务器
- 将显示常规错误对话框,允许您调试证书错误。
例如,如果你的代理正在监听 1234 端口上的 proxy.com,那么你应该点击https://proxy.com:1234/在 Chrome 中无需使用代理。
其次,我最终弄清楚了我的特定证书的问题。我的代理服务器没有公共主机名,只有公共 IP 地址。
我正在像这样生成证书:
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes -keyout server.key -out server.crt -subj /CN=<ip> -addext subjectAltName=DNS:<hostname>,IP:<ip>
对于主机名的一些错误猜测是哪里<hostname>
出了问题。
事实证明,如果 Chrome 通过 IP 地址(而不是主机名)引用代理服务器,则必须省略DNS
SSL 证书中的条目。以下命令行对我有用:
openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes -keyout server.key -out server.crt -subj /CN=<ip> -addext subjectAltName=IP:<ip>
答案2
这里有一个关于在 Google Chrome 中使用安全代理的类似帖子,你可以看看:在 Google Chrome 中使用安全代理