ここで考慮すべき、独立しているが相互に依存する 2 つのレベルの間接化があります。1 つ目は、DNS 名が最終的に解決される IP アドレスです。2 つ目は、その IP アドレスのサーバーが行うことです。
ブラウザに URL を入力すると、最初に DNS ルックアップが行われることに注意してください。通常、これはブラウザ自体ではなく、オペレーティング システムによって処理されます。
そのため、ブラウザは OS に「example.comのアドレスは?」と尋ねます。OS はレコードを検索し、 を取得した場合は、レコードが見つかるまでそのCNAME
レコードを検索します。次に、OS がブラウザに応答します。A
ブラウザは、その IP アドレスへの TCP 接続を開きます。
- http:// URL の場合、ポート 80 に接続し、HTTP リクエストを発行します。
- http s :// URL の場合、ポート 443 に接続し、TLS/SSL 接続を確立して(証明書の検証を意味します)、セキュア チャネルを介して HTTP 要求を発行します。
この時点でのみ、HTTP リダイレクトが発生します。ブラウザはリクエスト ( を送信しGET /
、サーバーは 301 で他の URL に応答できます。
レジストラが提供する「サブドメイン リダイレクト」サービスは、301 を発行する通常の HTTP サーバーにすぎないことを理解してください。レジストラのリダイレクト オプションを選択すると、レジストラはA
ドメインの頂点のレコードを制御するサーバーに設定するだけで、そのサーバーはブラウザーにwww.example.comにアクセスするように指示します。
ほとんどのレジストラは SSL 証明書をリダイレクト サーバーにアップロードすることを許可していないため、ブラウザーはサーバーへの必要な安全な接続を確立できず、HTTP 要求を発行することはありません。したがって、https ://example.comへのリクエストは失敗します。
では、なぜCNAME
頂点だけにできないのでしょうか。 禁止されています。
CNAME
ドメインシステムは、正規名 ( ) RR [Record Resource]を使用してそのような機能を提供します。CNAME
RR はその所有者名をエイリアスとして識別し、RR のセクションで対応する正規名を指定しますRDATA
。 RR がノードに存在する場合CNAME
、他のデータは存在しないはずです。これにより、正規名とそのエイリアスのデータが異なることはありません。CNAME
このルールは、他の RR タイプについて権限のあるサーバーに確認することなく、キャッシュされたものを使用できることも保証します。
仕様では、CNAME
レコードが特定の (サブ) ドメインの唯一のレコードである必要があります。SOA
これは、頂点に記録を残すという要件と矛盾します。CNAME
(仕様を変更して共存を許可する取り組みがいくつか行われていますが、ドメイン上のSOA
によって混乱する壊れた SMTP 実装がまだ多くありCNAME
ます。)
apex で SSL を機能させるには、次のオプションがあります。
- リダイレクト サーバーで SSL をサポートするサードパーティ サービスを使用します。あなたはおそらくこれを支払うでしょう。 ここで1つのサービスです。 このルートはお勧めしません。信頼性を制御できず、SSL 証明書のキーを信頼できる人にも信頼できない人にも渡さなければならないからです。
- 独自のリダイレクト サーバーを実行します。頂点には
A
レコードが必要なため、Heroku や AWS の ELB などのサービスでは提供されない静的 IP が必要になります。そのため、クラウド環境にいる場合、信頼性を保証することは (不可能ではないにしても) 非常に困難になります。プラス面としては、SSL キーを引き続き管理できます。
- エイリアスを設定できる DNS ホストを使用してください。エイリアスを Heroku ドメイン/ELB などに向けます。これはおそらく最良のオプションです。
エイリアスは技術的には DNS レコードの一種ではありません。A
代わりに、別のルックアップの結果からレコードを返すのは、DNS ホスト側の特別な構成です。言い換えると:
- OS がexample.comの DNS 要求をDNS ホストに発行します。
- DNS ホストは内部エイリアス構成を読み取り、そのドメインの DNS 要求を発行します。したがって、 example.herokuapp.comにエイリアスが設定されている場合
A
、そのドメインのレコードが検索されます。
- DNS ホストは
A
、エイリアス ルックアップから取得した IP を含む単純なレコードを返します。
エイリアス レコードを使用すると、 wwwドメインが接続されているのと同じクラウド ロード バランサーを頂点に向けることができますCNAME
。wwwドメインにSSL をセットアップしたと仮定すると、ネイキッド ドメインは問題なく動作します。この時点で、アプリがリダイレクトを発行するか、ネイキッド ドメインを介してコンテンツを直接提供するかを選択できます。