服务器在 Docker 容器内不返回 SSL 证书

问题描述 投票:0回答:0

我们的秘密服务器 (Vault) 在 Docker 容器外返回一个有效的 SSL 证书链,但在从 Docker 容器内部连接时不返回任何证书。

Vault 连接在 Docker 之外没有问题,但在容器内返回以下内容:

requests.exceptions.SSLError: HTTPSConnectionPool(host='api.vault.secrets.ourwebsite.net', port=443): Max retries exceeded with url: /v1/auth/cert/login (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))

我已验证相同的公共证书、私钥和 CA 文件正在容器内外使用。

在 Docker 之外,

openssl s_client -showcerts -connect api.vault.secrets.ourwebsite.net:443
返回一个有效的证书链。在 Docker 内部,我收到相同命令的以下内容,服务器响应时没有证书:

140474014459792:error:140790E5:SSL routines:ssl23_write:ssl handshake failure:s23_lib.c:177:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 289 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    Krb5 Principal: None
    PSK identity: None
    PSK identity hint: None
    Start Time: 1677705485
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

我相信 Docker 内部正在发生某种网络魔法/开销,其想法来自 https://stackoverflow.com/a/37974584。我不确定这是否与 iptables、我们的 VPN 或其他来源有关。

我希望连接在同一台机器上的 Docker 内部和外部都能正常工作。

python docker authentication ssl hashicorp-vault
© www.soinside.com 2019 - 2024. All rights reserved.