Windows Google Chrome网站使用证书
我正在创建一个网站(使用OpenResty,但我认为这与此无关),它只接受带有客户端证书验证的HTTPS连接。我随后生成了自己的证书颁发机构、证书签名请求和CRT。然后,当我使用python访问URL时,我测试了我的Web服务器是否正确地接受了这个CRTWindows Google Chrome网站使用证书,windows,ssl,nginx,https,ssl-certificate,Windows,Ssl,Nginx,Https,Ssl Certificate,我正在创建一个网站(使用OpenResty,但我认为这与此无关),它只接受带有客户端证书验证的HTTPS连接。我随后生成了自己的证书颁发机构、证书签名请求和CRT。然后,当我使用python访问URL时,我测试了我的Web服务器是否正确地接受了这个CRT certName = "mycert" cert = (certName + ".crt", certName + ".key") response = requests.get(url, params=urlencode(payload),
certName = "mycert"
cert = (certName + ".crt", certName + ".key")
response = requests.get(url, params=urlencode(payload), cert=cert, verify=False, stream=True)
现在,我正在尝试从谷歌浏览器访问相同的URL。我使用设置-->HTTPS/SSL-->管理证书-->导入导入CRT文件。然而,每当我转到URL时,我总是收到400个错误的请求-没有发送所需的SSL证书。通过查看nginx错误日志,我确认“客户端未发送所需的SSL证书”
如何告诉Chrome为特定URL使用证书?这里有几个问题需要解决
请参阅这篇关于TLS相互身份验证工作原理的博文:对于客户端身份验证,您需要证书和私钥(在一个certstore条目中)。那个网页伤了我的眼睛,但看起来你用的是openssl;如果是这样,您可以使用openssl将私钥和证书链组合到pkcs12(又名PFX)中,并将其导入Chrome使用的Windows应用商店,请参阅或注意,这不会告诉Chrome“针对特定URL”使用它;它将用于任何使用此证书中的CA名称请求证书的服务器。由于您显然设置了自己的CA,因此可能只有您控制的服务器才会使用该CA名称请求证书。