LINUX.ORG.RU
ФорумAdmin

Ошибка при создании сертификата SSL

 , ,


0

1

Доброго времени суток всем.

Подскажите, пожалуйста, по такому вопросу. Имеется crm (на nginx), работающая только внутри корпоративной сети. На сервере сформированы CA сертификаты, аж до 2023 года. А вот сертификат для сайта подписали всего на год (притом истек он год назад). Встала задача обновить сертификаты для сайта, а вот человек, который в прошлый раз это делал уже давно тут не работает. Ну, решил попробовать разобраться. Пытался идти двумя путями и в обоих случаях уперся в тупик (это были два разных тупика, а значит где-то тут выход из лабиринта должен быть).

Для начала я решил попробовать заново сформировать .key .csr и .crt для сайта используя имеющийся корневой сертификат. Делал это следующим образом:

openssl genrsa -out crm.domen.key 2048

openssl req -new -key crm.domen.key -out crm.domen.csr

openssl x509 -req -in crm.domen.csr -CA nameCA.crt -CAkey nameCA.key -CAcreateserial -out crm.domen.crt -days 365

После чего проверил полученный сертификат и получил следующую ошибку:

openssl verify crm.domen.crt
C = RU, ST = Ivanovskaya obl., L = Ivanovo, O = ORG Name, OU = IT, CN = crm.domen.ru, emailAddress = it@domen.ru
error 20 at 0 depth lookup:unable to get local issuer certificate
OK

Не придумал как победить и подумал, что у меня есть старые .key, .csr и .crt для сайта и, как я понимаю срок действия имеет только сам сертификат, т.е. это - .crt. И я решил попробовать сформировать сертификат используя уже имеющиеся ключ и запрос на получение сертификата. Попробовал двумя разными способами и получил одинаковый исход: Для начала попробовал с использованием корневого сертификата

openssl x509 -req -in crm.domen.csr -CA nameCA.crt -CAkey nameCA.key -CAcreateserial -out crm.domen.crt -days 365
А затем не используя его:
openssl x509 -req -days 365 -in crm.domen.csr -signkey crm.domen.key -out crm.domen.crt
Исход был один
error 18 at 0 depth lookup:self signed certificate

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

Подскажите, куда можно копать для решения одной из проблем, а лучше обеих.


openssl verify crm.domen.crt

а тут ты не указываешь свой кастомный корневой сертификат опцией -CAfile

Harald ★★★★★
()

но при открытии сайта все-равно получал сообщение, что сертификат не прошел проверку, т.к. он самоподписан.

Купить сертификат.

vlb ★★★
()
Ответ на: комментарий от Harald
openssl verify -CAfile /etc/pki/tls/certs/CAcert.crt crm.domen.crt 
crm.domen.crt: C = RU, ST = Ivanovskaya obl., L = Ivanovo, O = ORG Name, OU = IT, CN = crm.domen, emailAddress = it@domen.ru
error 18 at 0 depth lookup:self signed certificate
OK

Тоже ругается, что самоподписанный. Но, как я понимаю, что если импортировать crm.domen.crt в мозиллу (у нас используется по умолчанию), то она не должна ругаться при заходе на сайт. Или я не правильно понимаю?

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

Можно, пожалуйста, поподробнее? Про то, что надо подписывать .crt видел во всех статьях, что перерыл. А вот про подписить .csr ни разу. (не там искал?)

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

error 20 at 0 depth lookup:unable to get local issuer certificate

тут у тебя не ругался, что самоподписанный, возможно он был правильно подписан, но без указания кастомного CA вашей конторы verify выдаёт такую ошибку

Harald ★★★★★
()

Хочешь, я замучу тебе серт. Дам корневой, поставишь себе. А вообще попробуй easy-rsa, по сути это скрипт для openssl или если охота совокуплений как в анекдоте про фею и танкистов, можешь попробовать dogtag.

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

Извиняюсь, что спрашиваю второй раз, возможно не заметили.

Я понимаю, что ошибка другая, просто не знаю как её сформулировать. А как подписать .csr? Возможно ошибка из-за того, что его не подписывал. И, еще такой вопрос. Когда я, допустим, формирую CA сертификаты (была идея вообще руками проделать весь процесс дабы разобраться), то их ведь тоже надо подписать, правильно я понимаю?

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

Заманчиво, но...

Если вы накидаете инструкцию, то это будет в разы лучше. Но, тут нужно желание. Ибо, уверен мне это пригодится еще.

hanharr
() автор топика

-CA nameCA.crt -CAkey nameCA.key

Это первый блог, где ты их сгенерировал? У тебя ключ crm.domen.key. Потом ты взял создал, запрос на подпись (csr). А потом что ты сделал?

ving2
()
Последнее исправление: ving2 (всего исправлений: 2)
Ответ на: комментарий от ving2

Корневые сертификаты были сгенерированы до меня. Используя полученные запрос на подпись и ключ сформировал и подписал новый .crt с использованием уже имеющегося корневого сертификата.

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

с использованием уже имеющегося корневого сертификата.

Так тогда получается, нужно было запрос на подпись создавать с использованием уже имеющегося ключа nameCA.key.

ving2
()
Последнее исправление: ving2 (всего исправлений: 1)
Ответ на: комментарий от ving2

Подскажите, еще такой нюанс. Если у меня допустим есть CAcert.pem в котором и сертификат и ключ. То как будет выглядеть запрос на создание сертификата:

openssl x509 -req -in crm.domen.csr -CA nameCA.crt -CAkey nameCA.key -CAcreateserial -out crm.domen.crt -days 365

Использование этого не работает.

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

CAcert.pem в котором и сертификат и ключ

думаю что нужно выдернуть ключ, создать запрос на подпись, подписать сертификат. выдернет сертификат:

openssl x509 -outform der -in your-cert.pem -out your-cert.crt
а это вроде как должно выдернуть ключ:
openssl rsa -in your-cert.pem -outform pem -out your-key.pem
вообщем openssl это сущий ад, с очень большой документацией рекомендую вот это почитать: https://sgolubev.ru/openssl-ca/

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