WP Migrate DB Pro (Français)
La configuration du HTTPS localement peut être une affaire délicate. Même si vous parvenez à soumettre des certificats auto-signés, vous vous retrouvez toujours avec des erreurs de confidentialité du navigateur. Dans cet article, nous allons vous expliquer comment créer votre propre autorité de certification pour vos serveurs locaux afin que vous puissiez exécuter les sites HTTPS localement sans problème.
Pourquoi HTTPS localement?
Pourquoi pas simplement utiliser HTTP standard localement? Parce que si votre site de production est uniquement HTTPS et que vous développez localement sur HTTP standard, vos environnements de développement et de production ne sont pas aussi similaires qu’ils pourraient l’être. Par exemple, mon environnement de développement pour ce site (deliciousbrains.com) fonctionne comme un serveur Ubuntu dans une machine virtuelle VMware (VM) sur son Mac. Le site de production est un serveur Ubuntu fonctionnant sur Linode avec une configuration presque identique.
Vous voulez certainement que votre environnement de développement reflète la production le plus fidèlement possible.
Quand ce n’est pas le cas, vous invitez plus de problèmes apparaissant en production qui n’apparaissait pas en dev. Exécuter HTTP lorsque votre site de production est uniquement HTTPS est certainement un risque inutile.
Cependant, essayer d’obtenir un certificat SSL fonctionnant avec votre serveur local est un peu nul si vous n’utilisez pas un outil qui le gère pour vous comme Valet.
Si vous avez déjà essayé d’exécuter un site HTTPS localement, vous avez probablement vu quelque chose comme ce qui suit dans Chrome:
La solution de contournement était de créer un certificat auto-signé et de l’utiliser. MAMP Pro fait cela pour vous et a été mon choix pendant des années. Malheureusement, ce n’est plus possible. L’approche moderne consiste à devenir votre propre autorité de certification (CA)!
Fonctionnement
Pour demander un certificat SSL à une autorité de certification comme Verisign ou GoDaddy, vous leur envoyez une signature de certificat Request (CSR), et ils vous donnent un certificat en retour qu’ils ont signé à l’aide de leur certificat racine et de leur clé privée. Tous les navigateurs ont une copie (ou accèdent à une copie à partir du système d’exploitation) du certificat racine de Verisign, afin que le navigateur puisse vérifier que votre certificat a été signé par une autorité de certification de confiance.
C’est pourquoi lorsque vous générez une auto- certificat signé le navigateur ne lui fait pas confiance. Il est auto-signé. Il n’a pas été signé par une autorité de certification. Mais nous pouvons générer notre propre certificat racine et clé privée. Nous ajoutons ensuite le certificat racine à tous les appareils que nous possédons une seule fois, puis tous les certificats que nous générons et signons seront intrinsèquement approuvés.
Devenir une (minuscule) autorité de certification
C’est un peu ridicule à quel point il est facile de générer les fichiers nécessaires pour devenir une autorité de certification. Cela ne prend que deux commandes. Tout d’abord, nous générons notre clé privée:
Vous serez invité à entrer une phrase de passe, que je recommande de ne pas sauter et de garder en sécurité. La phrase de passe empêchera toute personne qui obtient votre clé privée de générer son propre certificat racine. La sortie doit ressembler à ceci:
Ensuite, nous générons un certificat racine:
Vous serez invité à entrer la phrase de passe de votre clé privée (que vous venez de choisir) et un tas de questions. Les réponses à ces questions ne sont pas si importantes. Ils apparaissent lorsque vous consultez le certificat, ce que vous ne ferez presque jamais. Je suggère de faire du nom commun quelque chose que vous reconnaîtrez comme votre certificat racine dans une liste d’autres certificats. C’est vraiment la seule chose qui compte.
Vous devriez maintenant avoir deux fichiers: myCA.key (votre clé privée) et myCA.pem (votre certificat racine ).
🎉 Félicitations, vous êtes désormais une autorité de certification. En quelque sorte.
Pour devenir une véritable autorité de certification, vous devez obtenir votre certificat racine sur tous les appareils du monde. Commençons par ceux que vous possédez.
Installation de votre certificat racine
Nous devons ajouter le certificat racine à tous les ordinateurs portables, ordinateurs de bureau, tablettes et téléphones qui accéderont à vos sites HTTPS . Cela peut être un peu pénible, mais la bonne nouvelle est que nous ne devons le faire qu’une seule fois. Une fois que notre certificat racine est sur chaque appareil, il sera valable jusqu’à son expiration.
Ajout du certificat racine au trousseau macOS
via la CLI
Via l’interface utilisateur
- Ouvrez l’application macOS Keychain
- Accédez au fichier > Importer des éléments…
- Sélectionnez votre fichier de clé privée (c’est-à-dire myCA.pem)
- Recherchez ce que vous avez répondu en tant que nom commun ci-dessus
- Double-cliquez sur votre certificat racine dans la liste
- Développez la section Trust
- Changez la case Lors de l’utilisation de ce certificat: sélectionnez « Toujours Trust «
- Fermez la fenêtre du certificat
- Il vous demandera de saisir votre mot de passe (ou de scanner votre doigt), faites ça
- 🎉 Célébrez!
Ajout du certificat racine à iOS
Si vous souhaitez ajouter le certificat racine à vos appareils iOS, vous pouvez le faire assez facilement en suivant ces étapes:
- Envoyez-vous le certificat racine par e-mail afin que vous puissiez y accéder sur votre appareil iOS
- Cliquez sur la pièce jointe dans l’e-mail sur votre appareil iOS
- Accédez à l’application des paramètres et cliquez sur « Profil téléchargé » en haut
- Cliquez sur installer en haut à droite
- Une fois installé, appuyez sur Fermer et revenez à la page principale des paramètres
- Accédez à « Général » > « À propos de »
- Faites défiler vers le bas et cliquez sur « Paramètres de confiance du certificat »
- Activez votre certificat racine sous « ACTIVER FULL TRUST FOR ROOT CERTIFICATES »
Création de certificats signés par une Sites de développement
Maintenant que nous sommes une autorité de certification sur tous nos appareils, nous pouvons signer des certificats pour tout nouveau site de développement nécessitant HTTPS. Tout d’abord, nous créons une clé privée:
Ensuite, nous créons un CSR:
Vous aurez toutes les mêmes questions que vous avez fait ci-dessus et, encore une fois, vos réponses n’ont pas d’importance. En fait, ils importent encore moins car vous ne regarderez pas ce certificat dans une liste à côté des autres.
Nous allons ensuite créer le certificat en utilisant notre CSR, la clé privée CA, le certificat CA et un fichier de configuration, mais nous devons d’abord créer ce fichier de configuration.
Le fichier de configuration est nécessaire pour définir l’extension SAN (Subject Alternative Name) qui est défini dans cette section (c’est-à-dire l’extension) du certificat:
Le fichier de configuration (dev.deliciousbrains.com. ext) contenait ce qui suit:
Nous allons exécuter la commande openssl x509
car d’après ce que j’ai compris, la commande x509 est nécessaire pour effectuer la signature avec le certificat racine et la clé privée. J’ai trouvé cet exemple de fichier de configuration sur Stack Overflow et il semble fonctionner.
Nous exécutons maintenant la commande pour créer le certificat:
Je peux maintenant configurer mon serveur Web avec la clé privée et le certificat. Si vous utilisez un serveur Linux, vous pouvez utiliser les instructions de notre série Installer WordPress sur Ubuntu 20.04 Si vous utilisez MAMP, vous pouvez sélectionner le certificat et les fichiers de clé à l’aide de l’interface utilisateur:
Malheureusement, MAMP (testé avec la version 5.7) ne crée pas de certificats SSL avec une autorité de certification, vous devrez donc utiliser la méthode manuelle pour le moment.
Pour tous les autres sites de développement, nous pouvons simplement répéter cette dernière partie de la création d’un certificat, nous n’avons pas à créer une nouvelle autorité de certification pour chaque site.
Shell Script
Pour rendre les choses encore plus rapides, voici un script shell pratique que vous pouvez modifier à vos propres fins:
Conclusion
Alors voilà, comment devenir votre propre certificat local autorité pour signer vos certificats SSL locaux et utiliser HTTPS sur vos sites locaux. J’espère que cela éliminera le message redouté « Votre connexion n’est pas privée » pour vous dans Chrome.