我遇到了错误:
[lua] certificate.lua:89: call(): failed to set DER cert: SSL_add0_chain_cert() failed, context: ssl_certificate_by_lua*,
在Ingress配置为在GKE上提供kubernetes仪表板时。此麻烦仅在仪表板上实现。在其他名称空间中,模拟配置可以正常工作。我的意思是使用相同的SSL证书。
Kubernetes版本: v1.14.7-gke.10
入口控制器版本: 0.26.1
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/force-ssl-redirect: "true"
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/secure-backends: "true"
name: kubernetes-dashboard
spec:
rules:
- host: gke-dashboard.example.com
http:
paths:
- backend:
serviceName: kubernetes-dashboard
servicePort: 443
path: /
tls:
- hosts:
- gke-dashboard.example.com
secretName: example-ssl
答案 0 :(得分:0)
Ingress的配置正确。密钥在SSL证书捆绑文件中。
我在一个包含5个证书的crt
文件中使用了证书链。
示例代码段为:
-----BEGIN CERTIFICATE-----
MIIF4zCCBMugAwIBAhIMUCJSvK6eipIjbvq7MA0GCSqGSIb3DQEBCwUAMEwxGzAJ
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIETTCCAzWgAwIBAgILBAABBAAABRE9wNjEwDQYJKoZIhvcNAQELBQAwVzELMAkG
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEMTCCAxmgAwIBAgILBAAAAhhBMYnGOdwwDQYJKoZIhvcNAQELBQAwTDEgMB4G
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIELzCCAxegAwIBUGILBAASOMEBL07hNwIwDQYJKoZIhvcNAQEFBQAwVzELMAkG
...
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEDjCCAvagAwIBAgILBAATEXTBHkSl82UwDQYJKoZIhvcNAQEFBQAwVzELMAkG
...
-----END CERTIFICATE-----
在我的捆绑包中,我有几个不必要的重叠证书。这就是为什么在转换为DER格式的过程中出现错误的原因。
删除不必要的证书后,问题得以解决。
顺便说一句,这样的捆绑软件在 Ingress-controller版本0.20.0 中可以正常工作。 因此,在进行故障排除时,我一直认为证书中没有错误。
也许此信息对某人有用。