Получение letsencrypt ошибки рукопожатия по запросу - PullRequest
0 голосов
/ 15 октября 2019

Я использую golang echo Auto TLS. Рецепт найден здесь . Я приобрел свой домен у доменов Google, и я управляю DNS в облачном DNS Google. Я обновил свой домен Google с помощью пользовательских серверов, чтобы он указывал на мой облачный DNS, и мое DNS-имя для этой службы сопоставлено со статическим IP-адресом. Кажется, все хорошо. Мой API работает в кластере kubernetes со следующей конфигурацией службы:

apiVersion: v1
kind: Service
metadata:
  name: api
  labels:
    app: api 
spec:
  type: LoadBalancer
  loadBalancerIP: "my_static_ip_here"
  ports:
  - name: http
    protocol: TCP
    port: 80
    targetPort: 80 
  - name: https
    protocol: TCP
    port: 443
    targetPort: 443 
  selector:
    app: api

Вот мое развертывание:

apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: default
  name: api
spec:
  replicas: 1
  selector:
    matchLabels:
      app: api 
  template:
    metadata:
      labels:
        app: api 
    spec:
        containers:
        - name: api 
          image: myimagehere 
          imagePullPolicy: Always 
          command: [
            "./api",
            "--selector=static"
          ]
          envFrom:
          - configMapRef:
              name: my-config
          env:
          - name: UPDATED_AT
            value: "Mon Oct 14 16:10:09 MDT 2019"
          ports:
          - containerPort:  443 
            name: https-port
          - containerPort:  80 
            name: http-port
          volumeMounts:
          - mountPath: /mnt/point
            name: api-data
        volumes:
        - name: api-data
          persistentVolumeClaim:
            claimName: api-vol 

Вот код, который я использую в своем маршрутизаторе для использования letsencrypt,

    echo.AutoTLSManager.HostPolicy = autocert.HostWhitelist("my.domain.io")
    echo.AutoTLSManager.Cache = autocert.DirCache("/mnt/point/autocert")
    echo.Pre(middleware.HTTPSRedirect())

Когда я скручиваю https://my.domain.io, я получаю SSL routines:CONNECT_CR_SRVR_HELLO:tlsv1 alert internal error и ошибки API с: echo: http: TLS handshake error from 10.32.0.1:49729: Get https://acme-v02.api.letsencrypt.org/directory: x509: certificate signed by unknown authority

Что мне здесь не хватает? У меня это работало в моем предыдущем проекте без необходимости установки certbot. Вещи просто работали из коробки. Я забыл что-то сделать с этим конфигом?

Редактировать: Хорошо, я немного покопался, и похоже, что x509 был вызван отсутствием сертификатов CA в моем док-контейнере. Я добавил 'RUN apk --no-cache add ca-Certificates' к своему альпийскому образу, но теперь, похоже, мне нужно выполнить соответствующую задачу. Должно быть, я выполнил вызов dns ранее, так как не вижу никаких признаков реализации типа HTTP-01 в моем более старом проекте.

Редактировать 2: Кажется, я исправил проблему. Похоже, я застрял на старой версии эха. После обновления до echo v4.1.11 все снова стало хорошо. Дело закрыто!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...