【发布时间】:2019-09-17 10:40:01
【问题描述】:
我正在尝试通过 Python 请求连接到我的内部服务之一:https://myservice.my-alternative-domain.com。我正在使用 Python 3.6
我正在使用自定义 CA 捆绑包来验证请求,但出现下一个错误:
SSLError:主机名“myservice.my-domain.com”与“my-domain.com”、“my-alternative-domain.com”中的任何一个都不匹配
内部服务使用的 SSL 证书具有 CN:my-domain.com 和 SAN(主题备用名称):'my-domain.com'、'my-alternative-domain.com'
所以,我正在尝试通过其中一个替代名称访问服务(必须是这样的,并且不受我控制)
我认为错误是正确的,并且证书也应该具有 SAN:
'*.my-alternative-domain.com'
为了使请求生效。
唯一让我困惑的是,我可以通过浏览器访问服务。
有人可以确认 Python 请求的行为是正确的吗?
这就是我调用服务的方式:
response = requests.get('https://myservice.my-alternative-domain.com', params=params, headers=headers, verify=ca_bundle)
谢谢
【问题讨论】:
-
您是否尝试将 SSL 验证设置为 false?更多详情请见stackoverflow.com/questions/15445981/…
-
如果我将 SSL verfiy 设置为 false,它可以工作。但我希望验证能够与我的自定义 CA 捆绑包一起使用。这是对我的要求。
-
我认为您需要提供有关您的证书(CN、SAN)和您的代码的更多详细信息。
-
CN 是:'my-domain.com'。 SAN 是:“my-alternative-domain.com”和“my-domain.com”。我会用这个和代码更新问题
-
您描述请求行为的方式是正确的。您确定浏览器获得完全相同的证书并访问完全相同的站点吗?
标签: python ssl openssl python-requests