HTTPS redirection à partir de la racine du domaine (c'est à dire de l'apex ou de "nues") de " www " sous-domaine sans navigateur de vomir?
DNS enregistrements A besoin que d'une adresse IP à être codées en dur dans votre application la configuration DNS
...qui Heroku recommande d'éviter. Heroku suggère deux solutions:
...à l'aide d'un fournisseur de DNS qui prend en charge l'enregistrement CNAME les fonctionnalités à l'apex, et à l'aide de sous-domaine redirection`.
Ma question tourne autour de la dernière option (parce que l'ancien n'est pas pris en charge par DreamHost autant que je sache):
Est-il possible de rediriger à partir de la racine (c'est à dire de l'apex ou de "nues") de domaine pour le 'www' sous-domaine pour les requêtes HTTPS sans le navigateur de vomir?
Heroku ne pense pas:
...les applications nécessitant un cryptage SSL doit utiliser l'ALIAS/NOM de la configuration à la racine du domaine. Sous-domaine de redirection sera la cause d'une erreur de navigateur lorsque la racine de domaine est demandée sur SSL (c'est à dire https://example.com).
...mais j'espère que c'est une incomplètes ou incorrectes) déclaration.
CLARIFICATION DE MISE À JOUR:
Le vrai problème avec la redirection à partir de l'apex de 'www' est que de taper https://example.com
directement dans un navigateur de soulever un avertissement de certificat. Bien sûr, c'est un cas limite, mais pas un petit.
SOLUTION DE MISE À JOUR:
J'ai résolu ce problème avec DNSimple. (N'ai même pas eu le transfert de mon nom de domaine!)
Je crois que easyDNS offre une fonctionnalité similaire, mais la surprise de constater que la plupart des autres domaine de l'hébergement d'entreprises ne sont pas.
- Le problème, c'est que votre serveur doit retourner un certificat SSL (afin de configurer la connexion HTTPS) avant de se les en-têtes de demande, tels que la
Host
en-tête, et donc avant qu'il ne sait quel nom d'hôte est utilisé. Donc, si elle renvoie un certificat SSL qui dit que c'est pour lawww
-sous-domaine, l'utilisateur reçoit un message d'erreur lors de la visite du domaine racine; et vice versa. (Sauf si vous utilisez des hôtes virtuels pour exécuter ces deux domaines séparer les adresses IP, dans ce cas, vous pouvez identifier l'accueil de cette façon.) - upvoted pour "vomir"
Vous devez vous connecter pour publier un commentaire.
Il y a deux distincts mais interdépendants, les niveaux d'indirection à considérer ici. La première est ce que l'adresse IP d'un nom DNS, finalement, décide de. La deuxième est ce que le serveur à l'adresse IP n'.
Rappelez-vous que lorsque vous tapez une URL dans un navigateur, la première chose qui arrive, c'est une recherche DNS. Habituellement, cela est géré par le système d'exploitation ne le navigateur lui-même.
De sorte que votre navigateur va demander à l'OS, "quelle est l'adresse de example.com?" L'OS va chercher le dossier, et si cela devient un
CNAME
, va chercher que record, jusqu'à ce qu'il trouve unA
enregistrement. L'OS répond alors le navigateur avec une réponse.Votre navigateur ouvre une connexion TCP vers l'adresse IP:
Seulement à ce point peut redirection HTTP arriver. Le navigateur envoie une requête (
GET /
, et le serveur peut répondre avec une 301 à toute autre URL.Comprendre que "le sous-domaine de redirection de" services offerts par les bureaux d'enregistrement ne sont rien de plus qu'un simple serveur HTTP qui émet des redirections 301. Lorsque vous optez pour un bureau d'enregistrement de l'option de redirection, ils ont juste mis la
A
enregistrement de votre nom de domaine de l'apex à un serveur de contrôle, et que le serveur indique aux navigateurs pour aller à http://www.example.com.Puisque la plupart des bureaux d'enregistrement ne vous permet pas de télécharger un certificat SSL pour leur serveur de redirection, les navigateurs ne peuvent pas établir la connexion sécurisée au serveur, et par conséquent, ils n'ont jamais question d'une requête HTTP. Ainsi, les demandes de https://example.com échouer.
Alors pourquoi ne pouvez-vous pas juste
CNAME
de l'apex? Il est interdit.La spécification exige qu'un
CNAME
record d'être le seul enregistrement pour une (sous -) domaine. C'est en contradiction avec l'exigence d'avoir unSOA
record sur l'apex. (Il y a quelques efforts pour changer les spécifications pour permettreCNAME
etSOA
à coexister, mais il ya encore beaucoup de cassé SMTP implémentations qui sera confondu par laCNAME
sur un domaine).Vous disposez des options suivantes pour obtenir SSL de travail sur l'apex:
A
enregistrement, vous aurez besoin d'une adresse IP statique, les services comme Heroku et d'AWS ELB ne fournissent pas. Donc, si vous êtes dans un environnement de cloud, il sera très difficile (voire impossible) pour garantir la fiabilité. Sur le côté positif, vous gardez le contrôle de vos clés SSL.Un alias n'est pas techniquement un type d'enregistrement DNS. Au lieu de cela, c'est une configuration particulière de l'hôte DNS secondaires qui renvoie un
A
l'enregistrement à partir du résultat d'une autre recherche. En d'autres termes:A
enregistrement de ce domaine.A
enregistrement avec l'IP(s) qu'il a obtenu à partir de l'alias de recherche.Avec un enregistrement d'alias, vous pouvez pointer votre apex pour le même nuage de l'équilibrage de charge de votre www de domaine est
CNAME
d pour. En supposant que vous avez mis en place SSL sur le www domaine, le nu de domaine fonctionne très bien. À ce point, c'est votre choix si votre application envoie une redirection, ou tout simplement de votre contenu directement sur le nu de domaine.https://example.com
tout en répondant auxhttps://www.example.com
Vous avez besoin d'un certificat qui fixe à la fois http://www.example.com et example.com.
NOTE: je n'ai pas essayé cela avec Heroku app.
Je suis encore le partage de cette solution ici car c'est le premier stackoverflow page qui s'affiche pour "redirection de domaine de niveau supérieur pour www version" de recherche. Il peut aider les autres qui sont à la recherche d'une réponse générique de redirection.
J'ai réussi redirigé nu de domaine www version.
En outre, j'ai également redirigés vers la version de HTTP à HTTPS version à l'aide de google domaines paramètres DNS dans la synthèse des dossiers.
Détail les étapes sont documentées ici:
https://www.am22tech.com/redirect-naked-domain-www-http-https-google-domains/