web-dev-qa-db-ja.com

ポート443でのTraefik HTTPSバックエンドでの内部サーバーエラー

Dockerでは、HTTPSポート443を使用してtraefikバックエンドをセットアップしようとするため、traefikコンテナーとアプリコンテナー(Apache 2.4)間の通信は暗号化されます。

DockerコンテナでInternal Server Errorおよびtraefik.protocol=httpsをアクティブにすると、traefik.port=443が表示されます。この問題はここに文書化されています: https://github.com/containous/traefik/issues/2770#issuecomment-374926137

たとえば、jwidler/nginx-proxy(Dockerハブで使用可能なリバースプロキシ)でもまったく同じセットアップがうまく機能します。コンテナ(内部で実行されているApache 2.4)の証明書は実際に署名されたものです(私はtraefikとコンテナのApacheにそれらをインストールしました)。 https:// ...でApacheコンテナを直接リクエストすると、すべてのブラウザで証明書が有効であると表示されます(緑色)。コンテナ内の証明書は大丈夫です。

質問は簡単です:InsecureSkipVerify = trueを使用することは安全ではありません。よく知られている機関(私の場合はGandiまたはComodo)によって発行された証明書を使用して、ラベルtraefik.protocol=httpsおよびtraefik.port=443のコンテナーバックエンドを動作させるための本番用のソリューションはありますか。

ありがとう。

9
Yivan

追加する必要があるかもしれません

InsecureSkipVerify = true

メイン/グローバルセクション

https://docs.traefik.io/configuration/commons/ を参照してください。

InsecureSkipVerify : If set to true invalid SSL certificates are accepted for backends.
Note: This disables detection of man-in-the-middle attacks so should only be used on secure backend networks.
6
chxzqw

私にとっての問題はtraefik.protocol=https;これはhttpsを有効にするために必要ではなく、直接500

0
Californian

InsecureSkipVerify = trueを設定してKubernetesダッシュボードを公開することができました。以下は、traefikデプロイメントファイルに追加した方法です(最終行)。

spec:
  serviceAccountName: traefik-ingress-controller
  terminationGracePeriodSeconds: 60
  containers:
  - image: traefik
    name: traefik-ingress-lb
    ports:
    - name: https
      containerPort: 443
    args:
    - --api
    - --kubernetes
    - --logLevel=INFO
    - --defaultentrypoints=https
    - --entrypoints=Name:https Address::443 TLS
    - --insecureSkipVerify=true
0
Newalp