web-dev-qa-db-ja.com

CNAMEリダイレクトによるSSL暗号化

これが私の現在のアーキテクチャです:私の会社から提供される必要があるクラウドでホストされているシンプルなサイトがあります。したがって、mysite.comには1234.cloud.comへのCNAMEリダイレクトがあります。 mysite.com用にSSL証明書を作成する必要があることを理解しています。

ここに私の質問があります:

a)コンテンツを取得するときにCNAMEリダイレクトはどのように機能しますか? DNSはクラウドIPアドレスを解決し、クラウドへのHTTP接続を1つだけ許可しますか、それともHTTP接続をサーバーに送信してからクラウドに中継しますか? mysite.comのSSL証明書を提示するサーバーはどれですか。 DNSだけでは十分ではないため、SSL証明書を提供するようにローカルサーバーを構成する必要があると思いますが、アーキテクチャについてはよくわかりません。

b)サーバーとクラウド間の通信も暗号化されるようにするにはどうすればよいですか? 2つのサーバー間でクライアント/サーバーSSLを構成する必要がありますか?

4
Johnny D

少し混乱していると思います。 CNAME自体はリダイレクトではありません。これはDNSの単なるレコードタイプであり、DNSエイリアスとも呼ばれます。 DNSプロトコルは、最終的には名前をIPアドレスにマッピングすることを目的としています。最も一般的なレコードタイプは、名前からIPへの一方向のマッピングである「A」レコードです。代わりに、CNAMEレコードはName1からName2への一方向のマッピングです。

あなたの場合、CNAMEレコードは、IP「mysite.com」を要求するクライアントに、代わりに「1234.cloud.com」のIPを要求するように伝えます。したがって、クライアントは1234.cloud.comのIPを要求し、そのIP(たとえば、10.10.10.10)を取得して接続を続行します。これはすべてクライアントのネットワークスタックで行われます。 Webブラウザはこの交換について何も知りません。ネットワークスタックが "mysite.com"が "10.10.10.10"にマップしていると言っているだけです。

クラウドサーバーは、サイトとSSL証明書の両方をホストするサーバーです(クラウドサーバーの前にロードバランサーがない場合)。会社のDNSゾーンmysite.comに対して権限のあるDNSサーバーを除いて、会社のサーバーは関与していません。

クライアントとクラウドサーバー間の通信が確実に暗号化されるようにする唯一の方法は、クラウドサーバーでHTTPS以外のリクエストを無効にすることです。

15
Ryan Bolger

DNS解決は、HTTPSダイアログから完全に分離されていることを理解する必要があります。システムはDNS要求を実行して、DNS名からIPアドレスを取得します。 CNAMEは、DNSレジストリ内の別のレコードの単なるエイリアスです。しかし、最終的にはIPアドレスがあります。/etc/hostsファイルにレコードを追加することもできます。

ブラウザがサーバーに接続できるIPアドレスを取得すると、SSLまたはTLSセッションが開始されます。サーバーはブラウザーに証明書を送信します。ブラウザーは証明書を要求した名前に対応することを確認します。

通常、DNSはクラウド、コンテンツ配信ネットワークを指します。次に、CDNはサーバーにキャッシュされていない要素を呼び出します。

0
François