为什么 TLS 入口在创建后的前几分钟内不返回密码?

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

当创建一个普通的 Kubernetes

Ingress
或一个 Traefik
IngressRoute
并配置了 TLS 密钥来终止时,我发现尝试
curl
或在浏览器上访问它们时,我会收到如下错误:

  • SSL_ERROR_NO_CYPHER_OVERLAP
    在 Firefox 中
  • curl: (35) error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure
    卷曲

但仅限于它们存在的最初几分钟。之后,它们就会按预期运行。

使用 openssl 进一步检查:

> openssl s_client -showcerts -servername [SERVER NAME] -connect [SERVER NAME]:443

CONNECTED(00000006)
8044535936:error:1404B410:SSL routines:ST_CONNECT:sslv3 alert handshake failure:/AppleInternal/Library/BuildRoots/d9889869-120b-11ee-b796-7a03568b17ac/Library/Caches/com.apple.xbs/Sources/libressl/libressl-3.3/ssl/tls13_lib.c:129:SSL alert number 40
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 349 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.3
    Cipher    : 0000
    Session-ID:
    Session-ID-ctx:
    Master-Key:
    Start Time: 1694429705
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
---

似乎根本没有返回任何密码。这是为什么?

我希望在创建这些入口时,如果未指定,某些控制器将立即选择合理的默认值(在本例中,它们没有指定)。 Nginx(独立的反向代理软件,不是我没有尝试过的 Kubernetes 入口类)没有这样的问题,并且能够立即做到这一点。

kubernetes kubernetes-ingress traefik traefik-ingress
1个回答
0
投票

事实证明,发生这种情况是因为我使用启用了“通用 SSL”的 Cloudflare - Cloudflare 需要一些时间才能从 Let's Encrypt/Google Trust Services 获取证书。在颁发证书之前立即尝试查询它们会导致连接失败。

© www.soinside.com 2019 - 2024. All rights reserved.