我有一个奇怪的案例。背景如下:
首先,客户使用我们的域名作为他们的商店,URL类似于somestore.eu.mycompany.com。
然后,客户升级到了自定义域名,其他客户这样做没有任何问题。
我们删除了旧子域名的整个命名空间,并创建了一个具有新域名的命名空间。
根域名无缺陷地工作,没有SSL证书问题。然而,暂存子域名有时会正常工作,有时会出现SSL证书问题,有时会出现以下错误:
首先,客户使用我们的域名作为他们的商店,URL类似于somestore.eu.mycompany.com。
然后,客户升级到了自定义域名,其他客户这样做没有任何问题。
我们删除了旧子域名的整个命名空间,并创建了一个具有新域名的命名空间。
根域名无缺陷地工作,没有SSL证书问题。然而,暂存子域名有时会正常工作,有时会出现SSL证书问题,有时会出现以下错误:
$ curl -vI https://staging.somestore.com/
* Trying 35.102.186.11:443...
* TCP_NODELAY set
* Connected to staging.somestore.com (35.102.186.11) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=*.eu.mycompany.com
* start date: Mar 13 09:29:46 2022 GMT
* expire date: Jun 11 09:29:45 2022 GMT
* subjectAltName does not match staging.somestore.com
* SSL: no alternative certificate subject name matches target host name 'staging.somestore.com'
查看日志,我发现nginx-ingress
仍在尝试获取旧证书
kubectl logs -f -n ingress-nginx nginx-ingress-controller-55f88544bf-dk7ht | grep my-namespace
SSL证书“my-namespace/tls-cert”不包含服务器“somestore.eu.mycompany.com”的公共名称或主题备用名称:x509:证书有效期为somestore.com、staging.somestore.com、www.somestore.com,而不是somestore.eu.mycompany.com。
为何Kubernetes的nginx-ingress仍在尝试获取旧证书?