0
我正在创建一个网站(与OpenResty,但我不认为是相关的),它只接受客户端证书验证的HTTPS连接。我遵循http://www.integralist.co.uk/posts/clientcertauth.html来生成我自己的证书颁发机构,证书签名请求和CRT。然后我测试了一下,当我去到一个URL与Python谷歌浏览器使用证书的网站
certName = "mycert"
cert = (certName + ".crt", certName + ".key")
response = requests.get(url, params=urlencode(payload), cert=cert, verify=False, stream=True)
现在我的网络服务器正确地接受这个CRT,我试图访问来自谷歌Chrome相同的URL。我使用设置 - > HTTPS/SSL - >管理证书 - >导入导入我的CRT文件。但是,每当我转到URL时,我总是收到400个错误请求 - 没有发送所需的SSL证书。通过查看nginx错误日志,我确认“客户端没有发送所需的SSL证书”
如何让Chrome浏览器使用特定URL的证书?
对于客户端身份验证您所需要的证书和私钥(在一个的CertStore条目)。该网页伤害了我的眼睛,但它看起来像你使用openssl;如果是这样,你可以使用openssl将私钥和证书链合并到pkcs12(又名PFX)中,并将其导入Chrome使用的Windows商店中,请参阅http://stackoverflow.com/questions/808669/convert-a-cert- pem-certificate-to-a-pfx-certificate或http://stackoverflow.com/questions/553149/is-it-possible-to-convert-an-ssl-certificate-from-a-key-file-to- a-pfx –
请注意,这并不表示Chrome会将其用于“特定网址”;它将用于任何请求在此证书中使用CA名称的证书的服务器。由于您显然设置了自己的CA,可能只有您控制的服务器才会使用该CA名称申请证书。 –