尝试发布帖子请求,并且我收到了一条403响应,其中包含" Http请求中没有客户端证书的消息"。 我尝试使用verify = False发出请求,但我仍遇到同样的问题。
这是我正在制作的获取请求
r = requests.post('https://www.ezcardinfo.com/api/Login/ValidateUsername', params={'userName': my_user_name, 'devicePrint': devicePrint}, headers=header)
现在,我不知道从哪里获得客户证书或者如何获得一般证书。我有pyopenssl和certifi,并通过输入
找到了我的request_ca_bundle的路径certifi.where()
当我设置verify =' path / to / request_ca_bundle'我仍然得到403错误。
答案 0 :(得分:1)
... Http Request中没有客户证书
这意味着服务器要求客户端使用证书对自身进行身份验证。在相互认证中,不仅服务器向客户端提供证书,然后由客户端验证,但客户端也需要向服务器提供自己的证书。
不经常使用客户端证书。如果使用它们,通常要求您从特定CA获取证书,或者您生成某个证书的证书并将其与您的帐户关联。详细信息取决于实际网站,您必须查看其文档或与他们联系以获取详细信息。
我尝试使用verify = False ...
发出请求
这只会禁用服务器证书的验证,因此不会影响与客户端证书相关的问题。
当我设置verify =' path / to / request_ca_bundle'我仍然得到403错误。
这仅设置验证服务器证书所需的可信CA,因此不会影响与客户端证书相关的问题。
请注意,使用浏览器访问特定网址时也会遇到相同的错误。如果您没有通过浏览器收到此错误,则可能需要安装必要的证书。在这种情况下,您需要导出证书和密钥,然后您可以在cert
参数中使用它,请参阅文档中的Client Side Certificates。