如何使用带有 nginx-ingress 的 digicert 来启用 https

How to use digicert with nginx-ingress to enable https

我正在尝试使用通过 digicert 获得的证书在我的 nginx-ingress 上启用 https。我们已经获得通配符证书,我有以下文件。

domain_name_2019-2021.csr
domain_name_2019-2021.key
domain_name_2019-2021.pem
DigiCertCA2_2019-2021.pem
star_domain_name_2019_2021.pem
TrustedRoot.pem

我已经通过 运行 以下命令创建了 tls 机密

kubectl create secret tls tls-secret --key ${KEY_FILE} --cert ${CERT_FILE}

并像这样在我的入口配置中使用这些秘密

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-service
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-passthrough: "true"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
spec:
  tls:
    - hosts:
       - {{ .Values.host }}
      secretName: tls-secret
  rules:
    - host: {{ .Values.host }}
      http:
        paths:
          - path: /
            backend:
              serviceName: service_name
              servicePort: 443

然而,当浏览到 subdomain.domain_name.com 时,我得到一个无效的证书,错误为 This certificate has not been verified by a third party。它使用的证书说 Kubernetes Ingress Controller Fake Certificate

你可以关注this, to install Jetstack cert-manager, once you make this installed, please follow .

它将解决您的问题。

您创建的当前证书对此不是必需的,这里的证书将由 jetstack 自动创建,一旦它能够验证 acme 挑战,为了验证,您需要映射 DNS 或主机名到 nginx 的负载均衡器 IP。

这应该可以解决您将 http 转换为 https 的目的