[英]Kubernetes TLS Ingress route with cert-manager and SelfSigned ClusterIssuer not working
[英]Ingress TLS routes with cert-manager not applied
我在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
我检查了以下内容,并且工作正常:
我认为这是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以获取生产级证书:
如果您的服务器网址是这样的:
服务器: https : //acme-staging-v02.api.letsencrypt.org/directory
这表示您正在申请可能会发生错误的登台证书。
我遵循了Digital Ocean的教程,并能够使用cert-manager为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标志运行前面的命令,以检入证书握手并验证证书信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.