85848
**前提・実現したいこと**  
Heroku の Production 環境にあるアプリを独自ドメインで公開したいです。  
前提条件としまして、ドメインは既にお名前ドットコムで取得致しました。また Production 環境にあるアプリ は hobby プランに変更済みです。

[初めてHerokuで独自ドメインを公開するあなたへ](https://qiita.com/kenjikatooo/items/07c3d911210a4ca96781)、および[Herokuで独自ドメインを使う方法【ついでにSSLにも対応】](https://freesworder.net/heroku-
own-domain/)を参考に設定を行いました。

記事通りに最後の設定までを行い、独自ドメインを読み込む事までは恐らく出来たと思います。以下のコマンドでも独自ドメイン（hogeapp.com
とします）が表示されます。

```

    C:\Users\app\hogeapp>heroku domains --app hogeapp
    === hogeapp Heroku Domain
    hogeapp.herokuapp.com
    === hogeapp Custom Domains
    Domain Name       DNS Record Type DNS Target                                                  SNI Endpoint
    www.hogeapp.com CNAME           crystalline-cardinal-**************************.herokudns.com undefined
    
```

しかし Heroku > Production 環境のアプリ > Settings 内で以下のエラーが出ました。

[![](https://i.stack.imgur.com/600xR.png)](https://i.stack.imgur.com/600xR.png)  
[![](https://i.stack.imgur.com/ZOwdn.png)](https://i.stack.imgur.com/ZOwdn.png)

コマンドでは以下の様にエラーが出ます。

```

    C:\Users\app\hogeapp>heroku certs:auto --app hogeapp
    === Automatic Certificate Management is enabled on hogeapp
    Domain             Status   Reason                            Last Updated
    ─────────────────  ───────  ────────────────────────────────  ────────────
    www.hogeapp.com  Failing  CDN not returning HTTP challenge  28 minutes
    === Some domains are failing validation, please verify that your DNS matches: heroku domains
        See our documentation at https://devcenter.heroku.com/articles/automated-certificate-management#failure-reasons
    
```

エラー文に記載されているページを確認してみた所、  
Status が Failing になる理由について、Heroku 公式サイトの [Automated Certificate
Management](https://devcenter.heroku.com/ja/articles/automated-certificate-
management#view-your-certificate-status) では以下のように説明されていました。

> ​Failing: Heroku は DNS を検証できません。最大で 1
> 時間検証を続けます。このエラーへの対処方法については「​トラブルシューティング​」を参照してください。

またそのトラブルシューティングで失敗の理由がいくつか書かれています。  
しかし「ドメイン名が 64 文字を超えている」ですとか「DNS レコードが正しくない」と言った事は無いと思います。

エラー文の中でも `CDN not returning HTTP challenge` とあったように、[CDN が HTTP
チャレンジを返さない](https://devcenter.heroku.com/ja/articles/automated-certificate-
management#cdn-not-returning-http-challenge)と言う部分が怪しいかもしれないと思いました。

> これは通常、AWS CloudFront で発生します

とあります。AWS S3 のクラウドストレージをアプリ内で使っておりますが、何か関係があるのでしょうか？  
どなたかご助言を頂けますと有難いです。

**補足情報**  
ruby 2.6.8p205 (2021-07-07 revision 67951) [x64-mingw32]  
RubyGems 3.0.3.1  
Rails 5.2.6  
mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)  
heroku/7.59.2 win32-x64 node-v12.21.0

**追記：DNS の設定について**  
記事に沿って進めましたが、まず Heroku 側で Point DNS を設定致しました。CNAME と ALIAS
を追加しましたので、レコードは全部で6つあります。  
Hostname と Target の欄には、「DNS Target」で確認出来る `ランダムな英語と数字の組み合わせ.herokudns.com`
をコピペ致しました。

[![画像の説明をここに入力](https://i.stack.imgur.com/6CUx7.png)](https://i.stack.imgur.com/6CUx7.png)

次にお名前ドットコム側でも CNAME を追加致しました。赤く塗りつぶしている箇所は取得した独自ドメイン名になります。

[![画像の説明をここに入力](https://i.stack.imgur.com/UI838.png)](https://i.stack.imgur.com/UI838.png)

また当方 Windows ですので `nslookup` を使用致しました。

```

    C:\Users\app\hogeapp>nslookup -type=CNAME www.hogeapp.com 
    サーバー:  UnKnown
    Address:  192.168.38.***
    
    hogeapp.com 
            primary name server = dns01.gmoserver.jp
            responsible mail addr = hostmaster.hogeapp.com 
            serial  = 2022011012
            refresh = 28800 (8 hours)
            retry   = 7200 (2 hours)
            expire  = 604800 (7 days)
            default TTL = 600 (10 mins)
    
    C:\Users\app\hogeapp>nslookup www.hogeapp.com 
    サーバー:  UnKnown
    Address:  192.168.38.*** 
    
    権限のない回答:
    名前:    www.hogeapp.com 
    Address:  133.130.64.***
    
```

`nslookup` を初めて使うので見方がまだあやふやなのですが、表示されております「dns01.gmoserver.jp」
はお名前ドットコムのサーバーですので、ちゃんとCNAME の設定は出来ていると言う認識で良いのでしょうか…？
CC BY-SA 4.0
2022-01-20T06:27:21.087
85813
2022-01-22T04:36:45.220
2022-01-22T04:36:45.220
3060
46737
question
heroku dns
Heroku のアプリを独自ドメインで公開したいが、DNSの設定に関してエラーが出る。
お名前ドットコム側の DNS レコード設定画面下部にある「DNSレコード設定用ネームサーバー変更確認」をチェックせずに進めていたのが原因でした。  
チェックした上でコマンドを打ってみた所、 `primary name server` の値が変わりました。

```

    C:\Users\app\hogeapp>nslookup -type=CNAME hogeapp.com
    サーバー:  UnKnown
    Address:  192.168.38.***
    
    hogeapp.com
            primary name server = 01.dnsv.jp
            responsible mail addr = hostmaster.dnsv.jp
            serial  = 1642765776
            refresh = 3600 (1 hour)
            retry   = 900 (15 mins)
            expire  = 604800 (7 days)
            default TTL = 300 (5 mins)
    
```

また DNS の設定も上手く反映され、こちらのリンクをクリックすると自分のアプリに独自ドメインで飛べました。  
[![画像の説明をここに入力](https://i.stack.imgur.com/Bituu.png)](https://i.stack.imgur.com/Bituu.png)
CC BY-SA 4.0
2022-01-21T13:42:11.057
85848
2022-01-21T13:42:11.057
46737
85813
answer