Как создать https-сервер на localhost

Следуя приведенному ниже руководству, я создал https-сервер https://docs.nodejitsu.com/articles/HTTP/servers/how-to-create-a-HTTPS-server/

и программа работает без ошибок

но когда я не могу открыть https://localhost: 8000 в моем хроме

он всегда получает ERR_SSL_PROTOCOL_ERROR

enter image description here

Ответы

Ответ 1

Ну, один быстрый способ сделать это с ngrok.

Он очень прост в использовании и занимает всего несколько секунд. Это так же просто, как загрузить вашу версию системы. ngrok.exe и запустите ngrok.exe. Он откроет тип окна командной строки. Убедитесь, что ваш сервер Apache или тот, который вы используете, запущен.

Затем только для прослушивания в конечной точке туннеля HTTPS выполните следующие

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

или на любом порту, в котором вам нужно установить https.

Откройте браузер и введите https://localhost/myApp вы увидите, что он работает.

И если вы http://localhost/myApp он также работает.

Надеюсь, это поможет любому для быстрого решения.

Ответ 2

Я использую Caddyserver с конфигурацией следующим образом:

:443
tls self_signed

Ответ 3

Если это предназначено для тестирования, и вам не нужен действительный сертификат (который, кажется, имеет место, поскольку вы используете "localhost"), вы можете использовать "самозаверяющий" сертификат, просто убедитесь, что nginx настроен к тем.

Я мог бы объяснить детали, но на самом деле это отличная статья об учебниках сообщества Digital Ocean:

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

просто убедитесь, что вы адаптируете порт (443), если хотите прослушивать 8000.

Ответ 4

Предполагая, что вы используете node.js, тогда http-сервер имеет -S или --ssl с -C и -K для включения https.

Ответ 5

Вам нужно сделать две вещи:

  • создать самозаверяющий сертификат SSL и
  • добавить его в доверенные сертификаты

Удалось сделать это на macOS примерно так:

  • Чтобы сгенерировать сертификат SSL, выполните следующую команду в терминале (согласно инструкциям Let Encrypt):
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")
  • И чтобы добавить сертификат в доверенные сертификаты, выполните следующую команду (предложенную в этом блоге):
sudo security add-trusted-cert -d -r trustRoot -k "/Library/Keychains/System.keychain" "/private/tmp/certs/certname.cer"