| Type | Name | Target | Proxy status |
|---|---|---|---|
CNAME | www | {example-domain}.herokudns.com | Proxied |
Herokuは、いくつかの事前設定されたプログラミング言語をサポートするクラウドPaaSです。Herokuはすべてのインフラストラクチャを管理するため、コマンドラインで作業することなくアプリケーションに集中できます。
この記事では、HerokuをCloudflareと設定して、HTTPS経由でトラフィックを提供する方法について説明します。この記事では、すでにCloudflareでアクティブなドメイン ↗を持っており、Herokuアプリが稼働していると仮定します。
Herokuの指示に従ってください: アプリのカスタムドメイン名 ↗。
以下では、サブドメインとルートドメイン(「ルートドメイン」とも呼ばれます)のDNSレコードを追加する必要があります。CloudflareでのDNSレコードの管理方法を学んでください。
まず、Cloudflareアカウントにログインし、DNSアプリに移動して、上記のステップ1で取得したカスタムドメイン(DNSターゲットとも呼ばれます)を指す’www’ CNAME レコードを追加します。
| Type | Name | Target | Proxy status |
|---|---|---|---|
CNAME | www | {example-domain}.herokudns.com | Proxied |
Herokuにルートまたはアペックスドメインを追加するには、ルートから指すCNAMEレコードを使用する必要があります。Herokuユーザーが使用するためのIPアドレスは公開されていないため、Aレコードを使用することはできません。
幸いなことに、Cloudflareはルートドメインのリクエストを解決するためのCNAMEフラッティングを提供しています。
ルート用のCNAMEレコードを追加し、上記のステップ1で取得したドメインのDNSターゲットを指します。
| Type | Name | Target | Proxy status |
|---|---|---|---|
CNAME | @ | {example-domain}.herokudns.com | Proxied |
Cloudflareがあなたのドメインで機能していることを確認する最も簡単な方法は、cURLコマンドを発行することです。
curl -I www.example.comHTTP/1.1 200 OKDate: Tue, 23 Jan 2018 18:51:30 GMTContent-Type: text/html; charset=UTF-8Connection: keep-aliveCache-Control: public, max-age=0Last-Modified: Mon, 31 Dec 1979 04:08:00 GMTX-Powered-By: ExpressServer: cloudflareCF-RAY: 3e1cf1d936f28c52-SFO-DOGCF-RayレスポンスヘッダーでCloudflare経由のリクエストを識別できます。これらのいずれかが存在する場合、リクエストはCloudflareによって適切にプロキシされています。
DNS設定内で構成したサブドメインに対して、上記のcURLコマンドを繰り返すことができます。
Cloudflareは、すべての有料プランでSANsワイルドカード証明書を提供し、無料プランではSNIワイルドカード証明書を提供します。SSLの詳細はこちら ↗で確認できます。
これが何を意味するのかわからない場合は、CloudflareダッシュボードのSSL/TLSアプリの概要タブに移動してください。Flexibleモードを選択して、すべての一般公開訪問者にHTTPS経由でサイトを提供します。
証明書のステータスが**• アクティブ証明書**に変わると、受信トラフィックはHTTPS経由でサイトに提供されます(例:訪問者はブラウザバーにドメイン名の前にHTTPSが表示されます)。
サイトへのすべてのトラフィックが暗号化されるように、Cloudflareは自動HTTPSリダイレクトを強制することができます。これを設定するには、すべての訪問者をHTTPS/SSLにリダイレクトする方法は? ↗を参照してください。
その後、cURLコマンドを使用して、すべてのリクエストがHTTPSに強制されていることを確認できます。
curl -I -L example.comHTTP/1.1 301 Moved PermanentlyDate: Tue, 23 Jan 2018 23:17:44 GMTConnection: keep-aliveCache-Control: max-age=3600Expires: Wed, 24 Jan 2018 00:17:44 GMTLocation: https://example.com/Server: cloudflareCF-RAY: 3e1e77d5c42b8c52-SFO-DOGドメインに対してSSLが機能していない場合(例:SSL証明書がまだ発行されていない場合)、リダイレクト後に525 ↗または526 ↗のHTTPレスポンスが表示されます。
ユニバーサルSSL証明書の発行には通常最大24時間かかります。有料SSL証明書は10〜15分以内に発行されます。