![](/img/trans.png)
[英]How can I use a LetsEncrypt SSL cert in my Heroku Node Express app?
[英]How can I use Cert manager letsencrypt-prod in my kubernetes service?
我有 4 個 yaml 文件
我想將letsencrypt-prod 用於我的認證服務。 但它不起作用。
當我用來確定入口正在工作或發行人正在工作時,他們都完成了!
kubectl get ing
kubectl get issuer
但是當我運行時:
kubectl get cert
2 天內未讀取證書。 像下面這樣: 它會產生如下問題。 認證沒有約束力 mandrakee.xyz.Mandrakee.xyz 看起來還是不安全! 如何通過證書管理器使我的網站保密? 部署.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: echo-deployment
spec:
replicas: 1
selector:
matchLabels:
app: echo-server
template:
metadata:
labels:
app: echo-server
spec:
containers:
- name: httpapi-host
image: jmalloc/echo-server
imagePullPolicy: Always
resources:
requests:
memory: "128Mi"
cpu: "500m"
ports:
- containerPort: 80
服務.yaml:
apiVersion: v1
kind: Service
metadata:
name: echo-service
spec:
ports:
- name: http-port
port: 80
targetPort: 8080
selector:
app: echo-server
入口.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: ambassador
cert-manager.io/issuer: letsencrypt-prod
name: test-ingress
spec:
tls:
- hosts:
- mandrakee.xyz
secretName: letsencrypt-prod
rules:
- host: mandrakee.xyz
http:
paths:
- backend:
service:
name: echo-service
port:
number: 80
path: /
pathType: Prefix
發行者.yaml:
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: letsencrypt-prod
spec:
acme:
email: ykaratoprak@sphereinc.com
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- dns01:
digitalocean:
tokenSecretRef:
name: digitalocean-dns
key: ce28952b5b4e33ea7d98de190f3148a7cc82d31f030bde966ad13b22c1abc524
如果您已正確設置您的頒發者(您已向我們保證),您將在您的命名空間中看到一個屬於 cert manager 的 pod。 這將創建一個 pod,它將驗證請求證書的服務器是否解析為 DNS 記錄。
在您的情況下,您需要將 DNS 指向您的入口。
如果此操作成功完成,那么下一階段的調試是驗證 443 和 80 是否都可以解決。 Cert Manager 創建的 Validation Pod 使用端口 80 來驗證通信。 人們犯的一個常見錯誤是假設他們只會將端口 443 用於 ssl,並出於安全原因禁用 80,以便稍后發現 letencrypt 在沒有端口 80 的情況下無法驗證主機名。
否則,常見的情況是 cert-manager 安裝在命名空間 cert-manager 中,因此您應該檢查管理器的日志。 這將提供有限數量的日志,有時可能難以找到解決問題的方法。
要查找直接錯誤,在您部署 ingress 的命名空間中由 cert-manager 生成的 pod 是一個值得關注的好地方。
我將運行的測試是使用 80 和 443 設置入口,如果您從瀏覽器使用您的域,您應該在端口 443 上獲得一些無效的 kubernetes 通用證書響應,而在端口 80 上只是“未找到”。如果這是成功,它排除了我之前提到的限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.