Как создать https-сервер на localhost
Следуя приведенному ниже руководству, я создал https-сервер https://docs.nodejitsu.com/articles/HTTP/servers/how-to-create-a-HTTPS-server/
и программа работает без ошибок
но когда я не могу открыть https://localhost: 8000 в моем хроме
он всегда получает ERR_SSL_PROTOCOL_ERROR
Ответы
Ответ 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 примерно так:
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"