トラフィックのガイドに沿ってLet's Encrypt and Dockerを設定しました。my-domain.com
は、その後ろに静的なウェブサイトがあるHTTPSを適切に受け入れます。次に、Trapikの背後で実行されているgRPCサーバーをmy-grpc-server.my-domain.com
にしたいと思います。 gRPC with Traefikを使用するTraefikのドキュメントを見ると、自己署名証明書を使用する手順がわかります。 Let's Encryptの有効な証明書を既に持っているという事実を利用するにはどうすればよいですか?gRPCでTraefikを暗号化しましょうか?
私のgrpc-server
Dockerコンテナでは、Traefikが書き込むacme.json
ファイルをマウントし、そのファイルからキーを読み取り、それらを使用してgRPCサーバーを初期化することができます。その場合でもうまくいくはずですが、Traefikと私のgrpc-server
Dockerコンテナの間のトラフィックがSSLを必要としているという事実を考慮に入れて、別のtraefik.toml
の設定が必要なようです。
UPDATE:私は今のところありません成功し、この試しを与えてきました。私は手作業でacmeキーをエクスポートしてテストしましたので、簡単にするためにLet's Encryptをピクチャから外しました。 grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.CANCELLED, Received http2 header with status: 500)>
そしてTraefikエラー:
ここgRPCクライアントエラーです level=warning msg="Error forwarding to https://172.18.0.2:443, err: stream error: stream ID 1; INTERNAL_ERROR"
私はgRPCクライアントと接続する不思議は、gRPCサーバ上のメッセージはありません。私はWebブラウザでmy-grpc-server.my-server.com
を打ったときしかし、私はTraefikで同じエラーとgRPCサーバー上に追加のエラーが表示されます。 E1112 21:06:37.480636928 8 http_server_filter.c:236] GET request without QUERY
トラフィックがgRPC Webブラウザの場合には転送されなく取得し、なぜ私が今思ったんだけどクライアントケース。あなたのtraefikとあなたのコンテナの間のhttpsで通信する
クライアントと 'my-grpc-server.my-domain.com'の間でLet's Encryptを使用して、TraefikとgRPCサーバ間のトラフィックに自己署名証明書を使用することはできますか?そうすれば、暗号化することができます。 –
私はまだこの1つに固執しています。私はtraefik.tomlファイルで 'InsecureSkipVerify = true'を有効にしていますが、' Error Forwarding to https://172.18.0.4:50051、err:tls:最初のレコードがTLSハンドシェイクのように見えません。 –
Let's Encryptを使用することは可能でしょうか?いいえ(ドッカーバックエンドではありません)。 gRpcクライアントとgRpcサーバーでHTTPSを有効にしてもよろしいですか? –