shop.example.com est une adresse à part qui doit exister en trois endroits. Lequel manque se lit facilement au symptôme, et chacun a son propre remède.
1. Le DNS
dig +short shop.example.com
# nothing at all: the record does not exist
Un enregistrement A pointant sur le serveur, ou un CNAME vers un nom d'hôte qui en a un. S'il manque, le navigateur dit que le serveur est introuvable : la requête ne quitte jamais la machine.
2. Le bloc serveur
server {
listen 443 ssl;
server_name shop.example.com;
root /var/www/shop/public;
}
Le DNS en place et aucun server_name correspondant, la requête arrive et Nginx sert ce qu'il considère comme le site par défaut. C'est le symptôme où un sous-domaine affiche le site principal à la place - et cela veut dire que le DNS fonctionne.
3. Le certificat
sudo certbot --nginx -d shop.example.com
Les deux premiers bons et pas de certificat pour ce nom, le navigateur avertit avant de charger quoi que ce soit. Le nom doit figurer sur le certificat ; un certificat pour example.com ne couvre pas shop.example.com.
Où vont les fichiers
- Son propre répertoire -
/var/www/shop/public. Propre, et la forme recommandée. - Un répertoire à l'intérieur du site principal - possible, et cela veut dire que le site principal peut servir les mêmes fichiers à une seconde adresse si vous ne l'en empêchez pas.
Les jokers
Pour de nombreux sous-domaines, un enregistrement joker et un certificat joker demandent moins de travail - voyez les sous-domaines joker.
