好的,我在 AWS EKS 中进行了一个使用 ALB 的简单部署,但我遇到了 TLS 问题。我的设置如下:
如果 CNAME 未经过代理(在 Cloudflare 中),我会收到“ERR_CERT_AUTHORITY_INVALID”错误。但如果是代理的话,那就可以正常工作了。
我该如何解决这个问题,或者我错过了什么?
这是我使用的yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: deployment-stuff
namespace: api
labels:
app: stuff
spec:
replicas: 1
selector:
matchLabels:
app: stuff
template:
metadata:
labels:
app: stuff
spec:
containers:
- name: stuff
image: stuff.azurecr.io/stuff-master:12
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8080
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: stuff
namespace: api
labels:
app: stuff
spec:
type: NodePort
selector:
app: stuff
ports:
- name: http
port: 8080
targetPort: 8080
protocol: TCP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: stuff
namespace: api
annotations:
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTP": 8080}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/certificate-arn: "arn:aws:acm:xxxxxxxxxxxxxxxxxxxx"
spec:
ingressClassName: alb
rules:
- host: stuff.domain.stf
http:
paths:
- path: /stuff
pathType: Prefix
backend:
service:
name: stuff
port:
number: 8080
以下是证书导入步骤:
好的,我现在发现了问题:我需要请求证书而不是导入它(在AWS ACM中)。
要验证证书,有两个选项:电子邮件或 DNS。我选择了后者。请求几分钟后,证书将包含必须在我们的 DNS 提供商中设置为 CNAME 条目的 DNS 名称和值(在我的情况下,我必须在 Cloudflare DNS 部分中进行设置)。