2017-09-05 5 views
0

私の状況を実行可能にする方法を見つけるのに問題があります。私は2つのアプリケーションがあります:Docker SwarmモードでTraefikの内部および外部サービスが実行されています

1:sub1.domain.com上で実行されている外部サービスWebアプリケーション。私がacme(LetsEncrypt)でtraefikの後ろにこのアプリケーションを実行するとうまく動作します。私はすべてが有効なLetsEncrypt証明書を使用して実行することをさらにいくつかのバックエンドサービス(API/AUTH)を持っており、彼らのHTTPトラフィックがリダイレクトされますhttpsにtraefikによって

[entryPoints.http.redirect] 
    entryPoint = "https" 

私はこのために、HTTPS転送にHTTPのいくつかのフォームを持っている必要がありますサービス。

2:sub2.domain.comで実行される内部サービスWebアプリケーション。私はデフォルトの証明書として設定した場合、またはアプリケーション自体(Tomcat内)で使用すると、traefikの後ろで正常に動作する自己署名された信頼できる証明書(内部CA)を持っています。しかし、それは内部サービスであるため、私の問題を解決すれば、私はこのためにSSLなしで暮らすことができます。しかし、これはtraefikのhttps転送へのHTTPでは機能しません。

私はこれらの2つのサービスを同じtraefikインスタンスの背後で実行しようとしていますが、考えられるすべてのシナリオはまだ進行中であるか、

シナリオ

1:HTTPSに何のhttpリダイレクトしない、内部サービスのHTTPSを気にしてばかりHTTPを使用しないでください。その後、外部Webサービスのバックエンド内でhttpsにリダイレクトされます。

問題

  • (バックエンドは常にHTTPまたはHTTPSポートのいずれか あるため)、別のプロトに転送 前方に1つのポートにすぎできないtraefik 2 traefikポート
  • を有することができません。

2 CERTデフォルトよりACMEを使用してください:デフォルトの証明書上の使用のACME

誰か他thought this was a good idea。それはまだ働いていないだけです。

3:バックエンドSSL証明書を再利用します。 "ssl termination"を使わずにtraefikをリダイレクトするだけです。私はこれが同じものかどうかは分かりませんが、 "passTLSCert"というオプションがあります。しかし、これは、.tomlファイルで定義されたフロントエンドでしか動作しない(おそらく私がバックエンドにドッカーを使用しているため)可能性があります。

4:内部サービス用のSSL証明書を作成するためにDNS-01チャレンジを使用します。 このようなサウンドがうまくいくので、CloudFlareを使用していて、APIキーがあります。ただし、サブドメインでは機能していないようです。私の問題報告書には返信がありません。https://github.com/containous/traefik/issues/1953

EDIT:この問題を解決するには、4で説明している問題を解決できるかもしれません。内部DNSがtraefikと競合しているようです

答えて

0

誰かが、私たちの内部DNSゾーンがサブドメインごとに追加されると判断しました。つまり、SOA要求がサブドメインを名前として返しました。これは、内部DNSゾーンがcloudflare DNSと同じではないので、cloudflareでうまくいきません。

これをサブドメインのレコードを持つメインゾーンに変更すると、問題が解決されました(delayDontCheckDNSオプションと組み合わせて)。

関連する問題