layout: post title: nginx ingress 的 root domain 設定 categories: [k8s, sys_admin] description:
先前使用 wildcard tls cert 作為整個 domain 的憑證共用
今天發現如果沒有帶 subdomain 的話無法直接使用這個憑證
連線到 www.example.com 的時候可以正常運作,但是 example.com 就無法運作了
在 firefox 上會很雞婆的幫你補上 www. ,看起來一切正常。但如果換到 curl 或 chrome 就會噴 tls 憑證警告
這個原因是:該憑證上只有 *.example.com
而沒有 example.com
這邊我懶惰所以直接用 http01 另外簽一個專門給 example.com
用的 tls secret
而沒有動本來簽好的憑證設定
如果有參考了我以前做的 k8s-nginx-ingress 設定方式
那麼 ingress config 需要拆開寫,再把 service 指到同一個
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: www-example-homepage
namespace: default
spec:
ingressClassName: nginx
rules:
- host: www.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-homepage
port:
number: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-homepage
namespace: default
spec:
ingressClassName: nginx
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-homepage
port:
number: 80
tls:
- hosts:
- example.com
secretName: example-com-tls