Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Google Chrome网站使用证书_Windows_Ssl_Nginx_Https_Ssl Certificate - Fatal编程技术网

Windows Google Chrome网站使用证书

Windows 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),

我正在创建一个网站(使用OpenResty,但我认为这与此无关),它只接受带有客户端证书验证的HTTPS连接。我随后生成了自己的证书颁发机构、证书签名请求和CRT。然后,当我使用python访问URL时,我测试了我的Web服务器是否正确地接受了这个CRT

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使用证书?

这里有几个问题需要解决

  • 您是否在相应的CA存储中安装了CA证书
  • 您将需要在当前用户存储中导入客户端证书和私钥。文件扩展名为.pfx。您当前收到400错误,因为浏览器认为它没有任何可使用的客户端证书
  • 您不能指定chrome为特定URL使用特定证书
    请参阅这篇关于TLS相互身份验证工作原理的博文:

    对于客户端身份验证,您需要证书和私钥(在一个certstore条目中)。那个网页伤了我的眼睛,但看起来你用的是openssl;如果是这样,您可以使用openssl将私钥和证书链组合到pkcs12(又名PFX)中,并将其导入Chrome使用的Windows应用商店,请参阅或注意,这不会告诉Chrome“针对特定URL”使用它;它将用于任何使用此证书中的CA名称请求证书的服务器。由于您显然设置了自己的CA,因此可能只有您控制的服务器才会使用该CA名称请求证书。