hvac python库-无法进行身份验证



我有以下python代码:

import hvac
import os
client = hvac.Client(url='https://vault.domain.com:8200', token='s.XXXXXXXXXXXXXXXXXXX')
client.is_authenticated()

它不起作用-我得到了例外:

Traceback (most recent call last):
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='vault.domain.com', port=8200): Max retries exceeded with url: /v1/auth/token/lookup-self (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))

令牌是正确的,因为我可以用它进行vault登录。我可以telnet到https://vault.domain.com:8200没问题。

版本:

Python 3.6.9
hvac (0.10.5)

有什么想法吗?

如果我将verify=False添加到客户端,它将给出

InsecureRequestWarning: Unverified HTTPS request is being made to host 'vault.domain.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning,
True

消息certificate verify failed并不意味着客户端没有经过身份验证,它意味着您的客户端无法验证服务器的真实性,因为您没有向它提供任何CA证书捆绑包来检查服务器的证书。

来自hvac文档:

verify(Union[bool,str](–布尔值指示在向Vault发送请求时是否应执行TLS验证,或者指向CA捆绑包的字符串用于验证。

因此,您应该执行verify="/path/to/ca_certs.pem"而不是verify=False

当您执行verify=False时,True意味着客户端经过了正确的身份验证,因此您应该能够以这种方式与Vault交互,但不验证服务器的证书意味着您容易受到DNS欺骗&MITM攻击。

相关内容

  • 没有找到相关文章

最新更新