我在GKE中有一个K8s集群(v1.12.8-gke.10),并且具有主机规则的nginx入口。我正在尝试使用cert-manager为入口路由启用TLS。我正在使用自签名群集发行者。但是,当我通过HTTPS访问该站点时,仍会获得默认的K8s证书。 (该证书仅对以下名称有效:kubernetes,kubernetes.default,kubernetes.default.svc,kubernetes.default.svc.cluster.local)
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: test
name: test
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/ingress.allow-http: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
certmanager.k8s.io/cluster-issuer: selfsign
spec:
tls:
- secretName: test
hosts:
- test.example.com
rules:
- host: test.example.com
http:
paths:
- path: /
backend:
serviceName: test
servicePort: 80
我检查了以下内容,并且工作正常:
答案 0 :(得分:0)
我认为这是clusterissuer的问题
只需看看我的集群发行者并检查
apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
name: prod
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: it-support@something.com
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: prod
# Enable the HTTP-01 challenge provider
http01: {}
检查正确的URL以获取生产级证书:
如果您的服务器网址是这样的:
这意味着您正在申请可能会发生错误的登台证书。
答案 1 :(得分:0)
我已经按照Digital Ocean中的教程进行操作,并且能够使用证书管理器为GKE中的Helm,Tiller,Letsencrypt和Nginx Ingress控制器的入口路由启用TLS。
我使用自己的域名而不是主机test-example.com,并出于测试目的而启动了虚拟后端服务(echo1和echo2)。
按照本教程操作并验证HTTPS是否正常运行后,请尝试卷曲主机:
$ curl test.example.com
您应该看到308 http响应(永久重定向)。这表明HTTP请求已被重定向为使用HTTPS。
另一方面,尝试在以下位置运行curl:
$ curl https://test.example.com
应该向您显示站点响应。
您可以使用前面的命令-verbose -v来检入证书握手并验证证书信息。