When you buy a domain from GoDaddy and try to connect it to your Heroku app, things get tricky—especially if you want SSL working properly with Heroku's ACM (Automated Certificate Management). The problem? Going direct from GoDaddy to Heroku leaves you with an incomplete setup that just won't cooperate.
The missing piece is a proper DNS provider that can handle the routing correctly. This is where a specialized DNS management service comes in handy, giving you the control and flexibility you need to make everything work seamlessly.
Here's the thing: Heroku needs specific DNS record types to function properly with SSL, and GoDaddy's default nameservers don't play nice with these requirements. You'll hit a wall trying to configure ANAME records and proper SSL certificate validation.
The solution is simpler than you might think—use an intermediary DNS provider that understands what Heroku needs. 👉 Get reliable DNS management that works seamlessly with Heroku deployments and avoid the headaches of mismatched configurations.
Start by getting your SSL certificate configured in Heroku. Head to your app's Settings page and find the SSL Certificates section. Click "Configure SSL" and select "Automated Certificate Management (ACM)." This tells Heroku to automatically generate and manage your SSL certificate.
Next, scroll down to the Domains section and add your domain twice:
First without www: example.com
Then with www: www.example.com
Heroku will generate DNS targets for each domain—these are special URLs that look something like opaque-walrus-zsrzjwkmx9w.herokudns.com. Keep these handy, you'll need them in a moment.
Create an account with a professional DNS provider that supports the record types Heroku requires. Once you're in, add your domain to the DNS management system. The platform will assign you a list of nameservers—typically four or five addresses.
Now hop back to GoDaddy. Go to "My Products," find your domain, and click "DNS." Look for the "Nameservers" section and click "Change" next to the default nameservers option. Select "Enter my own nameservers" and input each nameserver address you received from your DNS provider.
This change tells the internet to stop asking GoDaddy about your domain and start asking your new DNS provider instead. It's like forwarding your mail to a new address.
This is where the magic happens. You need to create two specific records that point your domain to Heroku.
For the CNAME record: Set the name field to www and the alias/target to the DNS target Heroku gave you for the www version of your domain. Important: add a period at the end of the Heroku DNS target, like this: opaque-walrus-zsrzjwkmx9w.herokudns.com.
For the ANAME record (sometimes called ALIAS): Leave the name field blank and set the target to the DNS target Heroku gave you for the non-www version. Again, add that trailing period.
Why ANAME instead of a regular A record? Because Heroku's infrastructure uses dynamic IP addresses. 👉 Modern DNS services handle ANAME records perfectly for cloud platforms, ensuring your domain always points to the right place even as Heroku's infrastructure changes.
DNS changes don't happen instantly. It can take anywhere from a few minutes to 48 hours for the changes to propagate across the internet, though it's usually much faster—around 15-30 minutes in most cases.
You can check if things are working by visiting your domain. Once the DNS has propagated and Heroku has validated your domain ownership, your SSL certificate will be issued automatically. You'll see a green padlock in the browser, and both http://example.com and https://www.example.com will redirect properly to the secure version.
Your GoDaddy domain is now properly configured with professional DNS management and connected to your Heroku application with fully functional SSL. Visitors can access your site securely, and you don't have to worry about certificate renewals—Heroku handles that automatically.
This setup gives you faster DNS resolution, better reliability, and the flexibility to make DNS changes quickly whenever you need to. Plus, your SSL certificate works exactly as it should, with no browser warnings or connection errors.