【发布时间】:2020-09-07 18:34:14
【问题描述】:
您好,我正在努力让 Cert-Manager 与我的 Azure AKS 上的 let'sencrypt 一起工作,以保护和 asp.net 核心 Web 应用程序。
我有一个这样的 ClusterIssuer:
apiVersion: cert-manager.io/v1alpha2
kind: ClusterIssuer
metadata:
name: letsencryptstaging-issuer
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
email: letsencryptstaging@prodibi.com
privateKeySecretRef:
name: letsencryptstaging-secret
solvers:
- http01:
ingress:
class: nginx
我要求这样的证书:
apiVersion: cert-manager.io/v1alpha2
kind: Certificate
metadata:
name: aks-prodibiv2-com-staging
spec:
secretName: aks-prodibiv2-com-staging-secret
duration: 2160h
renewBefore: 480h
organization:
- prodibiv2
dnsNames:
- aks.prodibiv2.com
issuerRef:
name: letsencryptstaging-issuer
kind: ClusterIssuer
我还为我想使用的入口控制器添加了注释
certmanager.k8s.io/acme-challenge-type: http01
certmanager.k8s.io/cluster-issuer: letsencryptstaging-issuer
在下面的截图中,我们可以看到证书请求是“等待完成” 我们还可以看到,我们有两个入口控制器,一个用于挑战的似乎没有 IP,并且域指向 ingress-prodibiweb
如果我尝试将域放在 .well-known 路径的前面,我会收到 404 not found 错误。
所以我的猜测是 cert-manager 没有正确配置为使用 ingress-prodibiweb(指向 asp.net core webapp)或类似的东西。知道我可以尝试什么让它工作吗?
【问题讨论】:
-
看起来您的 Ingress 资源的两个定义都无效。请在“后端”级别验证其配置,应指向正确/现有的 serviceName/servicePort 对,另外仔细检查 Service 是否配置正确,从“描述”输出看来不是(未找到端点)。
-
某事告诉我,您的应用程序 Pod 没有按预期运行,您能否使用 ''kubectl get po --all-namespaces. “未找到端点”错误可能是由此引起的。
标签: asp.net-core kubernetes lets-encrypt azure-aks cert-manager