我的公司已经有一个用于 fake.example.com 的现有CA证书,并且有一个A记录将 fake.example.com 映射到我们负载均衡器的IP。
该负载均衡器正在转发流量到我们的Kubernetes集群。
在集群中,我部署了nginx-ingress helm chart,将https暴露为30200的NodePort。
我使用上述证书创建了一个名为test-secret的k8s TLS secret。
我部署了一个名为“test”的服务应用程序,并安装了以下ingress:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: default
annotations:
kubernetes.io/ingress.class: nginx
spec:
tls:
- hosts:
- fake.example.com
secretName: test-secret
rules:
- host: fake.example.com
http:
paths:
- path: /myapp
backend:
serviceName: test
servicePort: 8080
所以,如果我执行以下操作:
curl https://{ip for k8s node}:30200/myapp/ping -H 'Host:fake.example.com' -k --verbose
我收到了预期的应答,但也看到了:
* Server certificate:
* subject: O=Acme Co; CN=Kubernetes Ingress Controller Fake Certificate
* start date: Jan 25 20:52:16 2018 GMT
* expire date: Jan 25 20:52:16 2019 GMT
* issuer: O=Acme Co; CN=Kubernetes Ingress Controller Fake Certificate
我已确认nginx.conf文件中,server_name fake.exampe.com的ssl_certificate、ssl_certificate_key和ssl_trusted_certificate指向了正确的位置。
我的问题是,在这种情况下,是否有可能配置nginx使用正确的证书?