[英]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.