J'essaie d'obtenir la certification SSL de mon application avec Heroku, mais la gestion automatisée des certificats échoue pour l'un des deux noms de domaine.
J'ai créé le dyno avant mars 2017, j'ai donc dû exécuter heroku certs:auto:enable
comme expliqué ici .
Ensuite, heroku domains
renvoie:
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
Cela semble être en ligne avec ce que heroku attend }.
Quoi qu'il en soit, heroku certs:auto
renvoie:
Domain Status
─────────────── ────────────
example.com Failing
www.example.com OK
J'admets que je suis assez analphabète pour les paramètres concernant les domaines, DNS, etc. Par conséquent, cela pourrait être une erreur très simple de mon côté. Cependant, j'ai lu la documentation de dépannage Heroku ainsi que des questions similaires dans SO comme un celui-ci ou celui-ci et je n'ai toujours pas indice ce qui ne va pas.
Le fait que www.example.com
soit correct mais que example.com
échoue me perturbe encore plus. Et malheureusement, j'ai reçu un e-mail de notification sans raison de l'échec .
Je suppose que le problème concerne Heroku ou le lieu où j'ai acheté le domaine. C'est Namecheap.com.
Là, à l'onglet Domain
, j'ai:
NAMESERVERS Namecheap BasicDNS
REDIRECT DOMAIN Source URL Destination
example.com http://www.example.com
Et à l'onglet 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
Qu'est-ce que je fais mal?
Le problème semble être dû à Namecheap. J'ai trouvé le billet suivant sur Heroku:
Problème
L'utilisateur a des difficultés à pointer son domaine racine (alias apex Domaine/domaine nu) vers son application Heroku, soit en définissant les enregistrements DNS corrects , Soit en y accédant via HTTPS.
Résolution
Les domaines racines sur Heroku nécessitent l'utilisation d'enregistrements de type "CNAME", souvent Appelés enregistrements ALIAS ou ANAME.
Malheureusement, un certain nombre d’hôtes DNS populaires tels que GoDaddy, Namecheap, Bluehost et d’autres ne prennent pas en charge ces types d’enregistrements. Ils offrent plutôt les avantages suivants:
Un disque
URL redirections/redirection
Il y a des réserves avec ces deux options ...
Étonnamment, je n'ai trouvé aucun endroit où toutes les étapes étaient expliquées clairement. Ce que j'ai fait jusqu'à présent c'est:
Puis vint la configuration sur DNSimple. J'ai suivi l'étape 1 de la documentation pour redirection HTTP vers HTTP ; ignoré l'étape 2, car l'ACM de Heroku l'avait déjà fait; et pour l'étape 3, l'article Pointant l'apex du domaine vers Heroku était très utile. J'ai ajouté manuellement un ALIAS record
et j'ai aussi ajouté un enregistrement CNAME
, comme ceci:
Type Name Content
───── ─────────────── ───────────────────────
ALIAS example.commyapp.com.herokudns.com
CNAME www.example.commyapp.com.herokudns.com
Au début, rien ne fonctionnait et le navigateur affichait l'erreur suivante:
Ce site est inaccessible
l’adresse IP du serveur de www.example.com n’a pas été trouvée.
Vérification de la documentation dépannage J'ai vu que la seule possibilité était le Name server propagation delay
, alors j'ai attendu. C'était très long, mais il a fallu moins d'une heure pour que le site soit à nouveau en ligne.
Cependant, la certification SSL continue à échouer plus de 48 heures plus tard ...
Pour référence future: après avoir contacté le support Heroku, ils ont actualisé manuellement ma demande de certificat et ont finalement été émis pour mon application ...
Vérifiez la réponse ici en particulier la solution CloudFlare car elle est gratuite
La gestion automatisée des certificats vous fournit également un certificat SSL gratuit À partir de https partout. Vous n'avez pas besoin d'acheter un cert.
Toutefois, namecheap ne fonctionnera pas avec ACM car ils ne permettent pas un enregistrement "Alias" pour votre domaine "apex". votre domaine sans sous-domaine alors https://example.com not https://www.example.com
Vos options sont basculées sur un registraire DNS prenant en charge un enregistrement «alias» Tel que dnsimple. Ils facturent 5 $ par mois en plus des frais d'enregistrement de domaine .
Vous pouvez également utiliser une instance gratuite de cloudflare fournie avec SSL.
Si vous avez déjà acheté un certificat, il existe un moyen de le télécharger sur Heroku via Un addon SSL.
J'utilise à la fois DNSimple/Heroku ACM sur certaines applications et cloudflare sur certaines Autres. Les deux sont également agréables, mais cloudflare est gratuit et vous offre également un CDN.
https://www.reddit.com/r/Heroku/comments/7wh5r4/setting_up_ssl_with_heroku_namecheap/