当前位置: 首页 > 知识库问答 >
问题:

将自定义证书设置为ngin x入口

万俟光临
2023-03-14

当从外部访问时,由于没有有效的CA,我得到了这个错误

验证深度为32 CONNECTED(00000003)不能使用SSL_get_servername深度=0 O=Acme Co,CN=库伯内特斯In的控制器伪造证书验证错误:编号=18:自签名证书验证返回:1深度=0 O=Acme Co,CN=伯库内特斯In的控制器伪造证书验证返回:1---证书链0 s: O=Acme Co,CN=库伯内特斯In的控制器伪造证书i: O=Acme Co,CN=库伯内特斯In的控制器伪造证书a: PKEY: rsaEn的加密,2048(位); sigarg: RSA-SHA256**

我有nginx控制器作为入口

它正在根据日志工作,但我无法告诉 nginx 入口使用该证书:

I0724 23:26:56.189668 7 store.go:429] “找到有效的入口类”入口=“io***/ro-eu-” 入口类=“公共” I0724 23:26:56.189924 7 event.go:285] 事件(v1.ObjectReference{Kind:“Ingress”, Namespace:“io***”, Name:“ro-eu-”, UID:“d3b7dc77-63f1-4d53-a032-28c7a86e3a52”, APIVersion:“networking.k8s.io/v1”, ResourceVersion:“13029013”, FieldPath:“}): 类型:”正常“ 原因:”同步“ 计划同步 I0724 23:26:56.190474 7 controller.go:166] ”检测到配置更改,需要重新加载后端“ I0724 23:26:56.262956 7 controller.go:183] ”后端已成功重新加载”

证书有效。

 Issuer Ref:
    Kind:       ClusterIssuer
    Name:       letsencrypt-of-dns
Secret Name:  wildcard-*-domain-net
Status:
  Conditions:
    Last Transition Time:  2022-07-21T10:15:20Z
    Message:               Certificate is up to date and has not expired
    Observed Generation:   2
    Reason:                Ready
    Status:                True
    Type:                  Ready
  Not After:               2022-10-19T09:15:17Z
  Not Before:              2022-07-21T09:15:18Z
  Renewal Time:            2022-09-19T09:15:17Z
  Revision:                2

Ingress.yaml

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: io***
  name: ro**-eu-**
  annotations:
    nginx.ingress.kubernetes.io/backend-protocol: HTTPS
    cert-manager.io/cluster-issuer: "letsencrypt-cf-dns"
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/configuration-snippet: |-
      proxy_ssl_server_name on;
      proxy_ssl_name $host;
spec:
  ingressClassName: public
  rules:
  - host: ro**-eu-**.names.domain.net
  - http:
      paths:
      - path: /*
        pathType: Prefix
        backend:
          service:
            name: ro**-eu-**
            port:
              number: 443

共有1个答案

都建树
2023-03-14

尝试:

...
ingressClassName: public

tls:  # <-- tell ingress-nginx to use this cert
- hosts:
  - ro**-eu-**.names.domain.net
  secretName: <name your secret to hold the cert>

rules:
  - host: ro**-eu-**.names.domain.net
    http:  # <-- Here, no '-'
      ...
 类似资料:
  • whistle会自动生成根证书,并根据根证书对每个请求动态生成https证书,如果需要用自定义的证书,甚至根证书,可以有两种方式(只支持 .crt 格式的证书): 把普通证书对 (如:test.crt 和 test.key、test2.crt 和 test2.key 等等) 或根证书 (名字必须为 root.crt 和 root.key),放在系统的某个目录,如 /data/ssl,并在启动时添加

  • 我正在将服务迁移到minikube上的kubernetes集群中,这些服务在加载时需要自签名证书,通过NodePort访问服务可以很好地工作,并需要浏览器中的证书(下图),但是通过入口主机访问(域在/etc/hosts中本地修改)为我提供了一个由Acme提供的kubernetes入口控制器伪造的证书,并且跳过了我的自签名证书,没有任何消息。 SSLs应该在应用程序中解密,而不是在入口中解密,并且t

  • 我有一个托管REST回显服务的库伯内特斯集群(AKS)。该服务通过HTTP运行良好。我正在使用NGINX入口路由流量。我现在想通过HTTPS和mTLS设置此服务,因此强制客户端指定证书以能够与回显服务通信。这是一个POC,所以我使用自签名证书。 我需要设置哪些Kubernetes组件才能实现这一点?我阅读了NGINX文档,但无法理解是否需要在Kubernetes集群中创建证书颁发机构/证书管理器,

  • 本文向大家介绍Nginx配置SSL自签名证书的方法,包括了Nginx配置SSL自签名证书的方法的使用技巧和注意事项,需要的朋友参考一下 生成自签名SSL证书 生成RSA密钥(过程需要设置一个密码,记住这个密码) 拷贝一个不需要输入密码的密钥文件 生成一个证书请求 这里会提示输入国家,地区组织,email等信息.最重要的一个是"common name",需要与网站域名相同. 输入完这些就会生成一个d

  • 我试图按照上一个答案中的建议设置和变量,但没有结果。

  • 介绍: 现在基于css font-face的字体图标越来越流行。 这种图标具有矢量图的特点,可以不失真的自由缩放,还可以通过css来设置图标的颜色,还有就是网络上资源特别丰富。X5系统自带了数百个字体图标, 用户还可以通过配置使用自己下载的字体图标, 下边就介绍一下具体的使用方法。 首先以fortawesome 网站为例(网址:http://fortawesome.github.io/Font-A