Создать свой сертификат для localhost
Здравствуйте!
У нас на ПК работает своя служба. Для работы с настройками этой службы используется браузер и подключается к адресу localhost. Мы используем Google Chrome. Подключение идет на адрес https://localhost/. И при первом подключении всегда выдается ошибка: "Ваше подключение не защищено..." Приходится каждый раз нажимать кнопку "Дополнительно" и далее нажимать "Перейти на сайт". Хочется сделать так, чтобы это сообщение не появлялось. В интернете прочитал, что для этого нужно сделать свой сертификат для localhost. Подскажите, пожалуйста, как это делается? |
ES, попробуйте в хроме выставить флаг: chrome://flags/#allow-insecure-localhost
никакой "свой сертификат" не поможет, потому что смысл сертификатов в стороннем аудиторе (разве что у вас в рамках организации свой центр сертификации, явно прописанный на всех компьютерах) |
Цитата:
Цитата:
В принципе, зачем вообще сертификат на локалхосте неясно - трафик-то дальше машины никуда не уходит. Разве что при разработке, чтобы приблизить условия к боевым. |
Цитата:
Что такое "CA"? Что такое "SAN localhost"? Цитата:
К этой службе посылаются запросы от других компьютеров через интернет, служба отправляет им ответы. Для администрирования и настройки этой службы администраторы подключаются к серверу по RDP и входят в режим настройки службы. Режим настройки - это вход на localhost в браузере. Цитата:
Цитата:
Но у нас другая ситуация: у нас вообще никакого сертификата нету. |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Это узкопрофильный программный продукт. |
Цитата:
Или просто в хроме мышкой на красный значок слева от адресной строки "Ненадёжный" и ниже "Сертификат (недействительный)", далее "подробнее". |
Цитата:
Как я понял, этот сертификат распространяется в дистрибутиве этой службы, и устанавливается в систему при инсталляции службы. И получается: нам надо создать свой "корневой" сертификат, который будет удостоверять этот самоподписанный сертификат. Правильно я понимаю? Тогда вопрос такой: а почему фирма-разработчик этой службы сразу не может сделать и самоподписанный сертификат и удостоверяющий сертификат? |
Цитата:
"Вы отключили предупреждение системы безопасности для этого сайта." и далее ссылка "Снова включить предупреждения". Но я ничего не отключал. Что значит это сообщение? И что делает Chrome когда я нажимаю "Снова включить предупреждения"? Где он включает эти предупреждения? Где находится эта настройка? Цитата:
Пишет: "openssl не является внутренней или внешней командой" |
Цитата:
Также необходимо (и это я тоже уже говорил), чтобы FQDN или IP ресурса, к которому вы обращаетесь (в вашем случае localhost) присутствовало в CN или SAN. Кстати, проверьте, может поставщик не настолько ленив, как вы думаете и таки прописал localhost. Это будет видно на закладке "подробнее" почти в самом низу "Альтернативное имя субъекта (2.5.29.17)". Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Только их техподдержка работает не очень активно, и ответ был такой: можно добавить свой действительный сертификат. А как это делается - они считают, что это уже мои проблемы. А я в этом плохо разбираюсь. Цитата:
Цитата:
Но у него нету кнопки "Install certificate". Цитата:
---- Что-то я запутался... Давай еще раз, пожалуйста. Итак, чтобы у меня все заработало мне нужно два сертификата. Один сертификат - корневой, и второй сертификат - "рабочий" (кстати как он правильно называется?). "Рабочий" сертификат вроде бы есть - он был в дистрибутиве - это два файла с именем user.crt и user.key. Объясните пожалуйста. Для чего используется этот "рабочий" сертификат? И зачем еще нужен корневой? Почему разработчик сделал только один сертификат, а не сделал сразу два сертификата? А может быть это у нас корневой сертификат? Как понять какой у нас сертификат: "рабочий" или корневой? |
Вложений: 2
Цитата:
Вот что мне вернула эта команда: в прикрепленных файлах |
Цитата:
Ну или просто выложите файл, я сам посмотрю. Конфиденциальной инфы там нету, а вот ключ (user.key) не показывайте никому! Хотя уже то, что он поставлялся с дистрибутивом, говорит о том, что он скомпрометирован... впрочем, это сейчас не важно. Цитата:
|
Вложений: 1
Цитата:
|
Цитата:
И как это определить? |
Цитата:
SAN также нет, всё что есть – CN=501 Кстати, в user.crt точно один сертификат? |
|
Цитата:
Код:
-----BEGIN CERTIFICATE----- Код:
-----END CERTIFICATE----- Цитата:
Цитата:
UPD Вот простая хавтушка, как создать свою CA и подписать ею сертификат. Единственно, там не показано, как добавлять SAN в свой сертификат. Но там ничего сложного, вам следует лишь создать текстовый файл такого содержания: Код:
authorityKeyIdentifier=keyid,issuer Код:
openssl x509 -req -in user.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out user.crt -days 10000 -extfile x509v3.txt Скрытый текст
Код:
openssl x509 -in user.crt -text -noout Код:
X509v3 Subject Alternative Name: |
Цитата:
Цитата:
Цитата:
Это возможно? Это решит проблему? И все-таки по каким признакам отличается не-корневой сертификат (который у нас) от корневого? На что надо смотреть, чтобы их отличить? |
Цитата:
Цитата:
Цитата:
Цитата:
Код:
openssl x509 -in rootCA.crt -text -noout |
Цитата:
Если бы они нас назвали в сертификате например "А501", и вместе с "рабочим" сертификатом предоставили бы свой корневой сертификат, то это решило бы проблему? |
Вариант 1: добавьте уже существующий кривой сертификат в "Доверенные корневые".
Вариант 2: запускайте Хром с ключом --ignore-certificate-errors (не рекомендуется). |
Цитата:
Цитата:
Так что долбите поддержку, проинструктировать, как устанавливать ваш собственный сертификат они просто обязаны. Если это не описано в документации (что неправильно, но увы вполне обычно для узконишевых продуктов). Что вам сразу не рассказали – это нормально, на первой линии сидят не великого ума и знаний люди, отвечающие тупо по опроснику, а если вопрос не входит в опросник, то и ответить на него не способны. Настойчиво попросите их эскалировать ваш вопрос к тому, кто владеет нужной информацией. |
Цитата:
Цитата:
Эта служба? |
Цитата:
|
Мне еще не совсем понятен механизм обмена с помощью этих сертификатов.
Используя сертификат, браузер отправляет зашифрованные сообщения службе. Служба читает эти сообщения, расшифровывая их при помощи закрытого ключа, который соответствует сертификату. А где служба хранит этот закрытый ключ? И откуда он берется этот закрытый ключ? |
Цитата:
Цитата:
Цитата:
Первый шаг - генерируешь ключ. Второй, если создаёшь корневой сертификат – создаёшь его при помощи только что сгенерированного ключа. На этом всё для этой пары. Если сертификат не корневой, то создаёшь запрос на подпись при помощи своего ключа и передаёшь его (запрос, Certificate Signing Request, CSR) в центр сертификации. Там его подписывают и выдают тебе готовый сертификат. Само собой, в случае самоподписного сертификата, в роли центра сертификации высутпаешь ты сам со своим корневым сертификатом. |
Время: 14:03. |
Время: 14:03.
© OSzone.net 2001-