LINUX.ORG.RU
ФорумAdmin

Не подхватывает сертификат ssl после отката виртуальной машины

 


0

1

Есть два сервера поднятых на виртуальной машине Hyper-V. ОС на обоих серверах Debian на одной 8, на другом 9. На обоих серверах работают WEB-сервисы соответственно поднятые на nginx и Apache2. Оба настроены на работу через ssl, сгенерировал и установил самоподписанные сертификаты. Сервисы взаимодействуют между собой, соответственно для организации связи между ними скопировал сертификаты между серверами в /usr/local/share/ca-certificates и выполнил update-ca-certificates. Связи между серверами проходит без проблем. Проверял через wget. Сертификаты привязаны к IP сервера, вход через браузер тоже по IP.

На клиентской машине установил оба сертификата в «доверенные корневые центры сертификации» и «доверенные издатели» ... все работало хорошо до момента отката сервера к контрольной точке. После этого сертификаты на клиентских машинах не воспринимаются как установленные и каждый раз браузер запрашивает ручное подтверждение для входа на сайт "..не может проверить подлинность сервера Х.Х.Х.Х из-за проблем с сертификатом. Возможно, серве пытается ввести вас в заблуждение. Продолжить?".

Клиенты на Win и на Mac ведут себя одинаково, при этом на серверах wget отрабатывает без всякой ругани.

Не понимаю в какую сторону копать, то ли на сервере что-то не так, то ли на клиентах, то ли вообще не верно организовал сертификацию по ssl. Может надо было сделать самоподписанный сертификат на компанию, а уже от него раздавать сертификаты машинам?

Все крутится только внутри офисной сети в тестовом режиме.

Увы, но статей как правильно организовать самоподписанную сертификацию внутри офиса не нашел. Много статей как сгенерировать сертификат и установить его на сервер ... вроде у меня все сделано по инструкции, но результат нерабочий ...



Последнее исправление: Tanatos (всего исправлений: 1)

Откатил сертификаты на сервере вместа с откатом VM

В браузере нажми уже наконец кнопку и посмотри явную причину недовольства сертификатом.

zgen ★★★★★
()
Ответ на: комментарий от ving2

Результат проверки: 140551868523712:error:20087002:BIO routines:BIO_lookup:system lib:../crypto/bio/b_addr.c:716:Temporary failure in name resolution

Браузер так же ругается на имя: «NET::ERR_CERT_COMMON_NAME_INVALID». Но я никак не пойму почему раньше работало, а сейчас ругается. К серверу обращаюсь по IP, в сертификате тоже прописан IP, порт стандартный. Откат был только на одном сервере, а сертификат перестал принимать обоих серверов.

За ссылку спасибо, читаю и просветляюсь ... правда процесс получается не быстрым.

Tanatos
() автор топика
Ответ на: комментарий от Tanatos

Нашел в сети такую рекомендацию:

------------------------------------- Семен Давыдов: Немного изучив вопрос, выяснил, что openssl не добавляет subjectAltName в сертификат, так как он не указан в конфиге, поэтому в openssl.cnf нужно в секции [ req ] раскомментировать параметр req_extensions = v3_req и в секци [ v3_req ] добавить параметр subjectAltName = DNS:example.com, IP:ххх.ххх.ххх.ххх (можно указать один из параметров, если у вас только IP/домен). При перевыпуске в запросе на подпись добавить параметр -reqexts v3_req и при подписывании -extensions v3_req После этого не забыть закомментировать req_extensions обратно. -------------------------------------

Поправил конфигурационный файл, прописал только IP генерирую новые ключи: openssl req -x509 -nodes -extensions v3_req -days 1825 -newkey rsa:2048 -keyout /etc/apache2/ssl/a.key -out /etc/apache2/ssl/a.crt перезапускаю Apache2 проверяю: openssl s_client -connect host:443 -cert a.crt -key a.key -state -debug

В результате получаю все тоже самое... Просветление не наступает

Tanatos
() автор топика
Ответ на: комментарий от Tanatos

проверяю: openssl s_client -connect host:443 -cert a.crt -key a.key -state -debug

Надеюсь что ты, в эту команду закрытый ключ и сертификат клиента подставляешь. А не то что выше генерировал.

ving2
()
Ответ на: комментарий от ving2

В этот момент я понял что вообще не догоняю как это все работает :(

Все эти команды я выполнял на сервере, предполагая что в данном случае проверяется подключение типа сам к себе. Да и на клиентах я подключал сертификат который генерировал той самой строкой, просто копировал a.crt с сервера на все клиенты и добавлял его в доверенные ... сначала ведь все работало ... и в браузере была зеленая строка и wget на обоих серверах переставал ругаться при обращении друг к другу ...

Tanatos
() автор топика
Ответ на: комментарий от Tanatos

В этот момент я понял что вообще не догоняю как это все работает :(
Все эти команды я выполнял на сервере

Начни с простого - http://sysadmins.ru/topic238106.html, что есть такое ассимитричное шифрование. Что из себя представляет закрытый и открытый ключи и какую роль они выполняют. Когда это дойдет, тогда и поймешь как оно работает. У тебя на серверах CRL (список отозванных сертификатов) проверка есть? Может он «протух»?

ving2
()
Последнее исправление: ving2 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.