Herokuを使用してアプリのSSL証明書を取得しようとしていますが、両方のドメイン名のいずれかで 自動証明書管理 が失敗しています。
2017年3月の前にdynoを作成したため、説明されているようにheroku certs:auto:enable
を実行する必要がありました here 。
次に、heroku domains
は次を返します:
Domain Name DNS Record Type DNS Target
─────────────── ─────────────── ─────────────────────────────
example.com ALIAS or ANAME example.com.herokudns.com
www.example.com CNAME www.example.com.herokudns.com
これは herokuが期待するもの と一致しているようです。
とにかく、heroku certs:auto
は次を返します:
Domain Status
─────────────── ────────────
example.com Failing
www.example.com OK
ドメインやDNSなどに関する設定については、読み書きができません。したがって、これは私の側からの非常に単純な間違いかもしれません。ただし、私は Herokuトラブルシューティングドキュメント およびSO this one または this one などの質問を読み、まだ何が悪いのかわかりません。
www.example.com
は問題ないがexample.com
が失敗するという事実は、私をさらに混乱させます。残念ながら、 失敗の理由 のない通知メールを受け取りました。
問題はHerokuまたはドメインを購入した場所のどちらかにあると思います。それがNamecheap.comです。
そこのDomain
タブで、
NAMESERVERS Namecheap BasicDNS
REDIRECT DOMAIN Source URL Destination
example.com http://www.example.com
そしてAdvanced DNS
タブで:
Type Host Value TTL
------------- ----- ------------------------------- -------
CNAME Record www example.com.herokudns.com Automatic
TXT Record @ google-site-verification... Automatic
URL Redirect Record @ http://www.example.com/ Unmasked
何が悪いのですか?
問題はNamecheapが原因であるようです。 Herokuで 次のチケット を見つけました:
問題
ユーザーは、適切なDNSレコードを設定するか、HTTPS経由でアクセスすることにより、ルートドメイン(別名apexドメイン/ネイキッドドメイン)をHerokuアプリにポイントする際に問題を抱えています。
解決
Herokuのルートドメインでは、「CNAMEのような」レコードを使用する必要があり、ALIASまたはANAMEレコードと呼ばれることがよくあります。
残念ながら、GoDaddy、Namecheap、Bluehostなどの一般的なDNSホストの多くは、これらのタイプのレコードをサポートしていません。代わりに、彼らは以下を提供する傾向があります:
Aレコード
URLリダイレクト/転送
これらのオプションの両方に注意事項があります...
驚いたことに、すべての手順が明確に説明されている場所は見つかりませんでした。これまでに行ったことは次のとおりです。
次に、DNSimpleの構成が行われました。私はドキュメントのステップ1に従って HTTPをHTTPにリダイレクト しました。 HerokuのACMがすでに実行しているため、ステップ2を無視しました。そして、ステップ3では、記事 ドメインのApexをHerokuにポイントする が非常に役に立ちました。次のように、ALIAS record
を手動で追加し、CNAME
レコードも追加しました。
Type Name Content
───── ─────────────── ───────────────────────
ALIAS example.commyapp.com.herokudns.com
CNAME www.example.commyapp.com.herokudns.com
最初は何も機能していなかったため、ブラウザに次のエラーが表示されました。
このサイトにアクセスできません
www.example.comのサーバーIPアドレスが見つかりませんでした。
トラブルシューティングのドキュメント を確認しましたName server propagation delay
が唯一の可能性であることがわかったので、待ちました。とても長い時間のように感じましたが、サイトが再びオンラインになるまで実際には1時間もかかりませんでした。
ただし、SSL証明書が48時間以上経過しても失敗し続ける...
今後の参考のために:Herokuサポートに連絡した後、手動で私の証明書リクエストを更新し、最終的に私のアプリに対して発行されました...
それが無料なので、ここで特にCloudFlareソリューションの答えを確認してください
自動化された証明書管理は、httpsから無料のSSL証明書をどこでもプロビジョニングします。証明書を購入する必要はありません。
ただし、namecheapは「apex」ドメインの「エイリアス」レコードを許可しないため、ACMでは機能しません。サブドメインがないドメイン https://example.com ではない https://www.example.com
オプションは、dnsimpleなどの「エイリアス」レコードをサポートするdnsレジストラに切り替えることです。彼らは、ドメイン登録料に加えて月額5ドルを請求します。
または、SSLに付属する無料のcloudflareインスタンスを使用することもできます。
すでに証明書を購入している場合は、SSLアドオンを介してHerokuにアップロードする方法があります。
一部のアプリではDNSimple/Heroku ACMを使用し、他のアプリではcloudflareを使用しています。どちらも同じように素晴らしいですが、cloudflareは無料でCDNも提供します。
https://www.reddit.com/r/Heroku/comments/7wh5r4/setting_up_ssl_with_heroku_namecheap/