68 votes

Comment créer un serveur https sur localhost

J'ai suivi le tutoriel ci-dessous pour créer un serveur https https://docs.nodejitsu.com/articles/HTTP/servers/how-to-create-a-HTTPS-server/

et le programme s'exécute sans erreur

mais quand je ne peux pas ouvrir https://localhost:8000 dans mon chrome

il est toujours un ERR_SSL_PROTOCOL_ERROR

enter image description here

49voto

Balloon Fight Points 263

Une façon rapide de le faire est avec ngrok.

Il est vraiment facile à utiliser et ne prend que quelques secondes à s'exécuter. C'est aussi simple que de télécharger la version de votre système. Décompressez et exécutez ngrok.exe. Il va ouvrir une ligne de commande du type de fenêtre. Assurez-vous que votre serveur Apache ou celui que vous utilisez est en cours d'exécution.

Alors pour n'écouter que sur une HTTPS point de terminaison du tunnel exécuter les opérations suivantes

ngrok http -bind-tls=true site.dev:80

ou sur n'importe quel port vous avez besoin d' https pour être installée.

Ouvrez votre navigateur et tapez https://localhost/myApp vous verrez qu'elle fonctionne.

Et si vous tapez http://localhost/myApp il fonctionne également.

Espérons que cela est utile à tout le monde pour une solution rapide.

12voto

nemo Points 680

J'utilise Caddyserver avec une configuration comme celle-ci:

 :443
tls self_signed
 

10voto

Ioanna Points 156

Vous devez faire deux choses:

  • générer un certificat SSL auto-signé et
  • ajouter à la confiance des certificats

Réussi à le faire sur un macOS comme suit:

openssl req -x509 -out localhost.crt -keyout localhost.key \
  -newkey rsa:2048 -nodes -sha256 \
  -subj '/CN=localhost' -extensions EXT -config <( \
   printf "[dn]\nCN=localhost\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:localhost\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth")
  • Et pour ajouter le certificat pour les certificats, exécuté la commande suivante (suggéré sur ce blog):
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "/private/tmp/certs/certname.cer"

8voto

Mikec Points 153

Si c'est des fins de test et vous n'avez pas besoin d'un valide cert (ce qui semble être le cas puisque vous êtes à l'aide de "localhost"), vous pouvez utiliser un "auto-signé" cert, assurez-vous de configurer nginx pour pointer vers ceux-ci.

Je pourrais expliquer les détails, mais il y a en fait un excellent billet à ce sujet sur le Numérique communauté de l'Océan tutoriels:

https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-nginx-in-ubuntu-16-04

juste être sûr d'adapter le port (443) si vous voulez écouter sur 8000.

4voto

Qiulang Points 522

Supposons que vous utilisez nodejs, puis http-sever a -S or --ssl avec -C & -K pour activer https

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X