我已经在Windows Server 2012 R2 [WSUS Server-10.66.194.98] [Dec15.cer]中生成了自签名证书,并在所有“ WSUS管理”网站中启用了SSL。现在,我想在python代码中使用它来与服务器联系。
我遇到了以下错误
错误:无法访问主机[HTTPSConnectionPool(host = '10 .66.194.98',port = 8531):URL超过最大重试次数:/ApiRemoting30/WebService.asmx(由SSLError(SSLError(1,'[SSL:CERTIFICATE_VERIFY_FAILED ]证书验证失败(_ssl.c:833)'),))]
这就是我尝试过的。
wsusutil.exe configuressl 10.66.194.98
然后我将Dec15.cer复制到python根目录。并运行以下代码
from requests import Session
from requests_ntlm import HttpNtlmAuth
user = 'administrator'
password = '******'
session = Session()
session.cert = session.verify = 'Dec15.cer'
# session.verify = False
session.auth = HttpNtlmAuth(user, password)
print(session.get("https://10.66.194.98:8531/ApiRemoting30",
verify=session.verify,
cert=session.cert))
答案 0 :(得分:1)
有问题的Dec15.cer
证书是自签名证书,但没有基本限制CA:true:
$ openssl x509 -text -in Dec15.cer
...
X509v3 extensions:
X509v3 Key Usage:
Key Encipherment, Data Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication
但是,正如我在评论中已经说过的那样,在verify
中赋予requests
参数的证书必须是CA证书,即具有基本约束CA:true
。