繁体   English   中英

如何使用 cert-manager 和 HAProxy-ingress 部署 letsencryp

[英]How to deploy a letsencryp with cert-manager and HAProxy-ingress

挖掘 www,没有找到答案:我想知道如何将 cert-manager 与 haproxy-ingress 一起使用并进行加密。

任何文件/指南?

您可以尝试安装 jetstack 提供的证书管理器,可以在此处找到,然后您需要按照此stackoverflow 帖子中提到的步骤进行操作,这将为您整理好东西。

内部 acme-challenge 将由证书管理器完成,一旦您将证书中提到的密钥名称修补到入口的 TLS,则证书状态将准备就绪 state,请注意,密钥将自动创建,您无需创建它

  1. 使用以下命令部署 Certmanager

    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.4.0/cert-manager.yaml

    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.4.0/cert-manager.crds.yaml

  2. 部署 ClusterIssuer (集群发布者与命名空间无关)

cat > prod-issuer.yaml <<EOF
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-prod
spec:
  acme:
    server: https://acme-v02.api.letsencrypt.org/directory
    email: email@example.com
    privateKeySecretRef:
      name: letsencrypt-prod
    solvers:
    - http01:
        ingress:
          class: haproxy
EOF

使用kubectl apply -f prod-issuer.yaml应用集群颁发者

  1. 创建入口资源(命名空间不可知论,此示例使用 Nginx 后端服务)
cat > nginx-ingress.yaml <<EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-router
  namespace: production
  annotations:
    kubernetes.io/ingress.class: "haproxy"
    cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
  tls:
  - hosts:
    - "example.com"
    secretName: nginx-tls-secret
  rules:
  - host: example.com
    http:
      paths:
      - pathType: ImplementationSpecific
        path: "/"
        backend:
          service:
            name: nginx
            port: 
              number: 80
  - host: www.example.com
    http:
      paths:
      - pathType: ImplementationSpecific
        path: "/"
        backend:
          service:
            name: nginx
            port: 
              number: 80
EOF

使用kubectl apply -f nginx-ingress.yaml应用入口资源

这里的重要信息是,Haproxy controller 不需要注释acme.cert-manager.io/http01-edit-in-place: "true" nginx-ingress controller 不需要。 它按预期工作,没有任何额外的注释。 当您将 Ingress Resource 应用到集群时,证书将在 1-2 分钟内颁发。 使用kubectl describe certificate nginx-tls-secret -n production查看证书状态,查看事件获取证书。

有关更多调试信息以防出现问题,请参阅此处https://cert-manager.io/docs/faq/acme/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM