Подача хвостовой чешуи с Portainer

Недавно я посмотрел это видео о запуске клиента Tailscale в контейнере Docker вместе с другим сервисом, что позволяет мне получить доступ к сервису, используя мой DNS Tailscale.

Когда я попытался использовать тот же метод с Portainer, я просто получаю сообщение об ошибке в контейнере Tailscale.

«Ошибка прокси: tls: не удалось проверить сертификат: x509: сертификат действительно для 0.0.0.0, а не 127.0.0.1"

Когда я изменил IP в конфигурации на 0.0.0.0, вместо этого я получил эту ошибку

«Ошибка прокси: tls: не удалось проверить сертификат: x509: сертификат подписано неизвестным органом»

Это мой docker-compose.yml

version: '3.8'

services:
  portainer-ts:
    image: tailscale/tailscale:latest
    container_name: portainer-ts
    cap_add:
      - net_admin
      - sys_module
    volumes:
      - /home/sagiziv3/portainer/tailscale/state:/var/lib/tailscale
      - /home/sagiziv3/portainer/tailscale/serveconfig:/config
      - /dev/net/tun:/dev/net/tun
    environment:
      - TS_AUTHKEY=tskey-client-XXXXX-XXXXX?ephemeral=false
      - TS_EXTRA_ARGS=--advertise-tags=tag:container --reset
      - TS_STATE_DIR=/var/lib/tailscale
      - TS_SERVE_CONFIG=/config/serve-config.json
      - TS_USERSPACE=false
    hostname: portainer
    restart: unless-stopped
  portainer:
    image: portainer/portainer-ce:latest
    container_name: portainer
    network_mode: "service:portainer-ts"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data
    restart: always

volumes:
  portainer_data:

И это файл конфигурации, который я использую:

{
    "TCP": {
      "443": {
        "HTTPS": true
      }
    },
    "Web": {
      "${TS_CERT_DOMAIN}:443": {
        "Handlers": {
          "/": {
            "Proxy": "https://127.0.0.1:9443"
          }
        }
      }
    }
}

Я могу только предположить, что проблема заключается в том, что Portainer использует HTTPS со своими собственными сертификатами, и именно поэтому Tailscale не может создать действительный сертификат.

Но мне не удалось найти, как отключить HTTPS на Portainer...

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не знаю, почему голосование против и голосование за закрытие вопроса (возможно, это неправильный веб-сайт или просто ожесточенные люди 🤷‍♂️), но в любом случае, после некоторых дополнительных поисков, я нашел решение.

Я обнаружил, что Portainer также прослушивает HTTP-запросы на порту 9000, поэтому обновление конфигурации для пересылки HTTPS-вызовов http://127.0.0.1:9000 решило проблему.

Это окончательный файл конфигурации:

{
    "TCP": {
      "443": {
        "HTTPS": true
      }
    },
    "Web": {
      "${TS_CERT_DOMAIN}:443": {
        "Handlers": {
          "/": {
            "Proxy": "http://0.0.0.0:9000"
          }
        }
      }
    }
}

Другие вопросы по теме