Kubernetes Cert-Manager 无法让 http 01 ACME 挑战正常工作
Kubernetes Cert-Manager can't get http01 ACME challange to work
您好,我正在努力让 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
在下面的截图中我们可以看到证书请求是"Waiting to complete"
我们还可以看到我们有两个入口控制器,一个用于挑战的控制器似乎没有 IP,域指向 ingress-prodibiweb
如果我尝试将域放在 .well-known 路径前面,我会收到 404 not found 错误。
所以我的猜测是 cert-manager 没有正确配置以使用 ingress-prodibiweb(指向 asp.net 核心 webapp)或类似的东西。关于如何让它工作有什么想法吗?
- 您的入口 IP 是私有的。 Let's encrypt 无法访问
- 您需要确保您使用的是您正在使用的 Nginx Ingress
- http01:
ingress:
class: nginx
- 确保您的域指向正确的 IP。 (入口 IP 和负载均衡器 IP)
现在是 20.50.42.93
https://mxtoolbox.com/SuperTool.aspx?action=a%3aaks.prodibiv2.com&run=toolpage
和dns01也是请求SSL的解决方案。权限够的话可以试试
您好,我正在努力让 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
在下面的截图中我们可以看到证书请求是"Waiting to complete" 我们还可以看到我们有两个入口控制器,一个用于挑战的控制器似乎没有 IP,域指向 ingress-prodibiweb
如果我尝试将域放在 .well-known 路径前面,我会收到 404 not found 错误。
所以我的猜测是 cert-manager 没有正确配置以使用 ingress-prodibiweb(指向 asp.net 核心 webapp)或类似的东西。关于如何让它工作有什么想法吗?
- 您的入口 IP 是私有的。 Let's encrypt 无法访问
- 您需要确保您使用的是您正在使用的 Nginx Ingress
- http01:
ingress:
class: nginx
- 确保您的域指向正确的 IP。 (入口 IP 和负载均衡器 IP) 现在是 20.50.42.93 https://mxtoolbox.com/SuperTool.aspx?action=a%3aaks.prodibiv2.com&run=toolpage
和dns01也是请求SSL的解决方案。权限够的话可以试试