PDA

Показать полную графическую версию : Создать свой сертификат для localhost


Страниц : 1 [2]

ES
07-08-2018, 16:58
Это решит проблему? »
Нет, не решит. Поскольку CN у вас 501, то и добавление в hosts записи, указывающей на 127.0.0.1 не решит, так как стандарт запрещает использовать в именах только цифры. »
Ага, значит это косяк производителя ПО?
Если бы они нас назвали в сертификате например "А501", и вместе с "рабочим" сертификатом предоставили бы свой корневой сертификат, то это решило бы проблему?

DJ Mogarych
08-08-2018, 10:39
Вариант 1: добавьте уже существующий кривой сертификат в "Доверенные корневые".
Вариант 2: запускайте Хром с ключом --ignore-certificate-errors (не рекомендуется).

Jula0071
08-08-2018, 11:25
Ага, значит это косяк производителя ПО? »
Косяк поставщика уже в том, что ключ и сертификат он создал за вас – это грубейшее нарушение принципов асимметричного шифрования (главным образом создание приватного ключа левыми людьми). Да, понятно, что в работе с сертификатами заказчик может и не разбираться, поэтому поставщику проще слепить тяп-ляп, но это неправильно. Впрочем, как я уже показал, в этом нет ничего сложного, когда разберёшься. Серверный софт, использующий шифрованный канал передачи вроде SSL/TLS, часто поставляется с bogus сертификатами. Создание (или в случае "настоящих" сертификатов – запрос на подпись у центра сертификации) и установка сертификатов – это забота пользователя, а не производителя. Иногда этим занимается интегратор, если у заказчика нет ресурсов для самостоятельной настройки сложного ПО, но такие вещи нужно сразу оговаривать. "Неправильный" сертификат-затычка не блокирует работу ПО, а лишь мозолит глаз красным значком и заставляет делать два лишних клика. Большинство юзеров на такую мелочь просто не обращают внимания.
Если бы они нас назвали в сертификате например "А501", и вместе с "рабочим" сертификатом предоставили бы свой корневой сертификат, то это решило бы проблему? »
Только вам пришлось бы ещё прописать в hosts 127.0.0.1 a501 и обращаться по адресу https://a501. Но это может не сработать, если сервер настроен проверять доменное имя, по которому к нему обращаются.

Так что долбите поддержку, проинструктировать, как устанавливать ваш собственный сертификат они просто обязаны. Если это не описано в документации (что неправильно, но увы вполне обычно для узконишевых продуктов). Что вам сразу не рассказали – это нормально, на первой линии сидят не великого ума и знаний люди, отвечающие тупо по опроснику, а если вопрос не входит в опросник, то и ответить на него не способны. Настойчиво попросите их эскалировать ваш вопрос к тому, кто владеет нужной информацией.

ES
08-08-2018, 12:58
Вариант 1: добавьте уже существующий кривой сертификат в "Доверенные корневые". »
Так он же не корневой?

Но это может не сработать, если сервер настроен проверять доменное имя, по которому к нему обращаются »
Под сервером здесь что имеется ввиду?
Эта служба?

Jula0071
08-08-2018, 13:09
Под сервером здесь что имеется ввиду?
Эта служба? »
Да.

ES
08-08-2018, 14:38
Мне еще не совсем понятен механизм обмена с помощью этих сертификатов.

Используя сертификат, браузер отправляет зашифрованные сообщения службе.
Служба читает эти сообщения, расшифровывая их при помощи закрытого ключа, который соответствует сертификату.
А где служба хранит этот закрытый ключ? И откуда он берется этот закрытый ключ?

Jula0071
08-08-2018, 15:32
Используя сертификат, браузер отправляет зашифрованные сообщения службе.
Служба читает эти сообщения, расшифровывая их при помощи закрытого ключа, который соответствует сертификату. »
Там всё гораздо сложнее, но принцип верно уловлен.
А где служба хранит этот закрытый ключ? »
В месте, для неё доступном. Вы же сами упоминали выше, что есть два файла – user.crt и user.key. Первый сертификат, второй – его ключ. Может они интегрируются в какое-то своё хранилище службы – мне неизвестно. Например, у java свой keyring.
И откуда он берется этот закрытый ключ? »
Его генерируешь ты, при помощи утилиты, посредством сложного алгоритма на базе генератора псевдослучайных чисел. Обычно используется неоднократно упомянутая утилита openssl. Вы ту микростатью на хабре прочитали, что я давал?
Первый шаг - генерируешь ключ.
Второй, если создаёшь корневой сертификат – создаёшь его при помощи только что сгенерированного ключа. На этом всё для этой пары.
Если сертификат не корневой, то создаёшь запрос на подпись при помощи своего ключа и передаёшь его (запрос, Certificate Signing Request, CSR) в центр сертификации. Там его подписывают и выдают тебе готовый сертификат. Само собой, в случае самоподписного сертификата, в роли центра сертификации высутпаешь ты сам со своим корневым сертификатом.




© OSzone.net 2001-2012