On m’a demandé de mettre en place HTTPS avec un certificat auto-signé sur Apache sur localhost, mais comment dois-je vraiment faire cela ? Je ne sais pas du tout.
Réponses
Trop de publicités?J'ai juste tenté - je besoin de tester certains de code de développement sur mon localhost Apache sur Windows. C'était WAAAY plus difficile qu'elle ne devrait l'être. Mais voici les étapes qui ont réussi à travailler après beaucoup de hairpulling...
J'ai trouvé que mon installation d'Apache est fourni avec openssl.exe
, ce qui est utile. Si vous n'avez pas une copie, vous devrez le télécharger. Mon exemplaire a été en Apache2\bin
le dossier qui est comment je de référence ci-dessous.
Étapes:
- Vous assurer que vous disposez des autorisations d'écriture pour votre conf Apache dossier
- Ouvrez une invite de commande en
Apache2\conf
le dossier - Type
..\bin\openssl req -config openssl.cnf -new -out blarg.csr -keyout blarg.pem
-
Vous pouvez laisser toutes les questions en blanc, sauf:
- PEM mot de passe: un mot de passe temporaire comme "mot de passe"
- Nom commun: le nom d'hôte de votre serveur
Lorsque ce est terminé, tapez
..\bin\openssl rsa -in blarg.pem -out blarg.key
-
Générer votre certificat auto-signé en tapant:
..\bin\openssl x509 -in blarg.csr -out blarg.cert -req -signkey blarg.key -days 365
-
Ouvrir Apache
conf\httpd.conf
fichier et assurez-vous SSL module est activé, il devrait y avoir pas de hachage au début de cette ligne:LoadModule ssl_module modules/mod_ssl.so
Certains Apache installations place la configuration SSL dans un fichier séparé. Si oui, assurez-vous que le protocole SSL conf fichier est inclus. Dans mon cas, j'ai eu de décommenter cette ligne:
Include conf/extra/httpd-ssl.conf
-
Dans la configuration SSL
httpd-ssl.conf
j'ai eu à mettre à jour les lignes suivantes:- Mise à jour
SSLSessionCache "shmcb:C:\Program Files (x86)\Zend\Apache2/logs/ssl_scache(512000)"
pourSSLSessionCache "shmcb:C:/Progra\~2/Zend/Apache2/logs/ssl_scache(512000)"
(Les crochets dans le chemin de confondre le module, donc nous avons besoin d'y échapper) -
DocumentRoot
- réglez ce paramètre sur le dossier pour vos fichiers web -
ServerName
- le nom d'hôte du serveur SSLCertificateFile "conf/blarg.cert"
SSLCertificateKeyFile "conf/blarg.key"
- Mise à jour
Redémarrer Apache.
- Essayez de chargement
https://localhost/
dans votre navigateur.
Espérons que vous avez rendu à ce point. Hésitez pas à mettre à jour ce post avec toute autre info utile.
(Les captures d'écran de courtoisie de Neil Obremski et ses précieux article - bien que maintenant tout à fait à jour.)
J’utilise ngrok (https://ngrok.com/) pour cela. ngrok est un outil de ligne de commande et de créer un tunnel pour localhost. Il crée une connexion http et https. Après l’avoir téléchargé, doit être exécuté la commande suivante :
Après quelques secondes, il donnera deux URL :
Maintenant, les URL pointent vers l’hôte local.
Apache2 SSL sur Windows a un bon tutoriel qui explique le processus. Elle pourra être qu'utile.
Il est en fait assez facile, en supposant que vous avez une openssl installation à portée de main. (Quelle plate-forme êtes-vous?)
En supposant que vous êtes sur solaris/linux/mac os/x, Van de Apache SSL/TLS mini-HOWTO est une excellente procédure pas à pas que je ne vais pas reproduire ici.
Toutefois, le résumé est que vous devez créer un certificat auto-signé. Puisque vous utilisez apache pour localhost sans doute pour le développement (c'est à dire pas un serveur web public), vous saurez que vous pouvez faire confiance au certificat auto-signé et ne peut ignorer les avertissements que votre navigateur va jeter sur vous.