Самозаверяющий сертификат работает только с localhost, а не 127.0.0.1 - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь создать самозаверяющий сертификат, чтобы моя локальная среда разработки использовала HTTPS, но у меня возникли некоторые проблемы. Причина этого в том, что я хочу проверить уведомления pu sh на моем телефоне через локальную сеть (через локальный IP 192.168.1.155), а уведомления работают только через безопасный контекст.

Это только кажется работать, когда я go до localhost:8080, и все еще небезопасно при переходе к 127.0.0.1:8080. Когда я перехожу на страницу безопасности 127.0.0.1:8080 Chrome, она говорит: This site is missing a valid, trusted certificate (net::ERR_CERT_COMMON_NAME_INVALID).

Вот мои настройки, которые я использую для генерации сертификата:

req.cnf:

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = 127.0.0.1
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = localhost
DNS.2 = 127.0.0.1
DNS.3 = 192.168.1.155

openssl req -newkey rsa:2048 -x509 -nodes -keyout key.pem -new -out cert.pem -config req.cnf -sha256 -days 3650

Я мог бы предположить, что мои CN или alt_names неверны, но я не уверен, что изменить их так, чтобы сайт всегда работал безопасно (либо через localhost, 127.0.0.1 или 192.168.1.155)

1 Ответ

0 голосов
/ 03 февраля 2020

В непредвиденном случае отладки резиновой утки я, кажется, наконец-то решил эту проблему на мгновение после публикации. Вот что я сделал:

req.cnf:

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = US
ST = VA
L = SomeCity
O = MyCompany
OU = MyDivision
CN = localhost
[v3_req]
keyUsage = critical, digitalSignature, keyAgreement
extendedKeyUsage = serverAuth
subjectAltName = DNS:localhost,IP:192.168.1.155,IP:127.0.0.1

командная строка:

openssl req -newkey rsa:2048 -x509 -nodes -keyout key.pem -new -out cert.pem -config req.cnf -sha256 -days 3650

Затем перейдите на страницу в Chrome, сохраните сертификат ( поскольку он по-прежнему будет недействительным) в виде файла DER, а затем с помощью mmc.exe импортируйте его в доверенные Root центры сертификации на своем компьютере (предполагается, что вы используете Windows)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...