使用证书管理器生成的AKS / inress TLS证书进行Azure Eventgrid订阅验证
尝试使用Webhook向azure eventgrid自定义主题添加订阅。 Webhook是部署在AKS上的springboot应用程序。使用入口控制器公开。使用证书管理器生成证书。
应用程序代码没有问题,因为我可以使用本地运行的相同代码成功创建事件订阅(通过公共IP公开)。
我可以从邮递员访问该应用程序。当我从邮递员发布验证JSON时,我得到了有效的响应。 {“ validationResponse”:“ 0000000000-0000-0000-0000-00000000000000”}
所以问题应该出在证书,安全性或入口。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: sample-ingress
namespace: hello
annotations:
kubernetes.io/ingress.class: nginx
certmanager.k8s.io/cluster-issuer: letsencrypt-staging
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
tls:
- hosts:
- demo-test.eastus.cloudapp.azure.com
secretName: tls-secret
rules:
- host: demo-test.eastus.cloudapp.azure.com
http:
paths:
- backend:
serviceName: api
servicePort: 80
path: /(.*)
- backend:
serviceName: api
servicePort: 80
path: /api/(.*)
- backend:
serviceName: workflow
servicePort: 80
path: /workflow/(.*)
---
apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
namespace: hello
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
email: user@contoso.com
privateKeySecretRef:
name: letsencrypt-staging
http01: {}
Azure eventgrid订阅验证应该成功。
HashSet
按照上面的链接。
答案 0 :(得分:1)
问题出在自签名证书上。颁发有效证书后,一切正常