web-dev-qa-db-fra.com

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 fonctionne sans erreur

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

il y a toujours un ERR_SSL_PROTOCOL_ERROR

enter image description here

33
Littlee

Un moyen rapide de faire ceci est avec ngrok .

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

Ensuite, pour n’écouter que sur un point de terminaison de tunnel HTTPS, exécutez la procédure suivante:

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

ou sur n'importe quel port dont vous avez besoin d'installer https.

Ouvrez le navigateur et tapez https://localhost/myApp, vous verrez que cela fonctionne.

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

J'espère que cela aidera tout le monde à trouver une solution rapide.

19
Balloon Fight

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

:443
tls self_signed
8
nemo

Si cela est destiné aux tests et que vous n'avez pas besoin d'un certificat valide (ce qui semble être le cas puisque vous utilisez "localhost"), vous pouvez utiliser un certificat "auto-signé", assurez-vous simplement de configurer nginx à ceux.

Je pourrais expliquer les détails, mais il y a en fait un excellent article à ce sujet sur les tutoriels de la communauté Digital Ocean:

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

assurez-vous simplement d’adapter le port (443) si vous souhaitez écouter sur 8000.

6
Mikec

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

2
Qiulang

Vous devez faire deux choses:

  • générer un certificat SSL auto-signé et
  • ajoutez-le aux certificats de confiance

J'ai réussi à le faire sur un macOS comme ceci:

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 aux certificats de confiance , exécutez la commande suivante (suggérée sur ce blog ):
Sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "/private/tmp/certs/certname.cer"
1
Ioanna