web-dev-qa-db-ja.com

証明書を手動でプロビジョニングせずにApexドメインHTTPS要求をリダイレクトする

カスタムドメインとHTTPSを使用して、Azureストレージで静的Webサイトをホストしようとしています。

ストレージアカウントを作成し、ファイルをアップロードして、静的サイトのホスティングを有効にしました。このサイトは、Azureが提供する<foo>.web.core.windows.netドメインからうまく機能しています。

Originのホスト名がAzureによって提供されるプライマリエンドポイントに設定されたサイトのCDNエンドポイントを作成し、wwwサブドメイン用のカスタムドメインを追加し、それにCDN管理の証明書をプロビジョニングし、ルールを追加しましたHTTPS以外のリクエストをhttps://www.<my-domain>.comにリダイレクトします。これもうまくいきます。

次に、apexドメインをwwwサブドメインにリダイレクトします。

CNAMEはオプションではありません ですが、CDNエンドポイントを指す@のエイリアスAレコードを追加し、apexドメインをカスタムドメインとしてCDNに追加しました。

http://<my-domain>.comへのリクエストはうまくリダイレ​​クトしますが、https://<my-domain>.comへのリクエストは恐ろしいSSL_ERROR_BAD_CERT_DOMAINエラーを発生させます。 Azureは、apexドメインのCDN管理の証明書をサポートしていません

CDN管理の証明書は、ルートドメインまたはApexドメインでは使用できません。 Azure CDNカスタムドメインがルートドメインまたはApexドメインである場合は、独自の証明書を使用する機能を使用する必要があります。

私のapexドメインで実際に何もホストしたくない— wwwサブドメインにリダイレクトしたいだけです。証明書を手動でプロビジョニング(および維持)することは、多くのオーバーヘッドのように見えます。

ドメインレジストラーであるGoDaddyには、私がやりたいことを実行する「転送」機能がありますが、私はDNSをAzureでホストしたままにしておきたいと思っています。

Apexドメインの証明書を手動でプロビジョニングしたり、AzureからDNSを移動したりせずに、apexドメインのHTTPSリクエストをwwwサブドメインにリダイレクトする方法はありますか?

2
Chris

Let's Encryptを使用して頂点の証明書を自動化し、証明書の部分をもう少し扱いやすくすることができます。

それ以外は、これを機能させるために、基本的にHTTPとHTTPSの両方を処理する301リダイレクトをホストする必要があります。特にHSTSを使用する場合は、近道はありません。頂点で実際にCNAMEをサポートするDNSプロバイダーがいくつかありますが、それらを試すのには少し躊躇します。

1
Stuggi

編集:すみません、質問を正しく読みませんでした。また、証明書の管理のオーバーヘッドを回避したかったのですが、解決策が見つかりませんでした。実際にはGoDaddyによってプロビジョニングされたSSL証明書をAzureで購入できます。自動更新できるかしら。

結局、ssls.comから4年間という超安価な証明書を購入し、Azure Vaultに保存して、Azure CDNでapexドメイン(Azure DNSで以下の手順を使用してセットアップされています)に使用できるようにしました。私のCDNは、apexドメインへの要求をwwwサブドメインにリダイレクトします。

エイリアスを使用してこれを行うことができます。

  1. DNSゾーンに移動します
  2. レコードセットを追加する
  3. 名前を空のままにします
  4. タイプAを選択
  5. エイリアスレコードタイプに[はい]を選択します
  6. リソースのドロップダウンからCDNエンドポイントを選択します

次に、CDNエンドポイントにホスト名(example.com)を追加します。

ルートレベルドメインのCDNでカスタムSSLを使用する必要があります。

0
Anup Kattel

いいえ、適切なSSL証明書がないとHTTPSリクエストを受信できません。

その後リダイレクトが行われます。

0
madacoda