@RedFirefly

Почему не работает самоподписанный сертификат?

Помогите разобраться, я плохо понимаю тему с сертификатами.
Устанавливаю Jitsi Meet с помощью Docker.
Допустим мой сервер на Убунту, выполняющий роль удостоверяющего центра (CA), называется Hostname1. С помомощью мануалов из Интернета (https://redos.red-soft.ru/base/server-configuring/...) установил EasyRSA и выпустил сертификат для СА-сервера. Назвал его ca.crt.
Далее сделал запрос сертификата для сервера и выпустил сертификат hostname1.crt (уже для сервера, а не CA, хотя это одна и та же машина).
Скопировал оба сертификата в /etc/ssl/certs. Ввел "dpkg-reconfigure ca-certificates", выбрал там эти сертификаты.
Далее я устанавливал эти сертификаты на компьютер пользователя (Windows) в доверенные корневые центры сертификации. Так вот, когда я копирую туда ca.crt, то соединение с сервером успешно устанавливается. А когда удаляю ca.crt и копирую вместо него hostname1.crt, то нет.
Как сделать правильно?

И второй вопрос, который лучше на форуме Jitsi задать, но вдруг тут ответят:
Вот что у них сказано про самоподписанные сертификаты:
https://jitsi.github.io/handbook/docs/devops-guide...
Какой сертификат здесь имеется в виду? В моем случае это ca.crt или hostname1.crt?

P.S. чтобы окончательно запутаться, я сделал запись CNAME в DNS на имя jitsimeet.domainname (хочу дать пользователям понятное имя сервиса, но не переименовывать сам сервер). Аналогично сертификату hostname1.crt выпустил новый сертификат jitsimeet.crt, установил туда же. Все эксперименты делаю именно с ним.
  • Вопрос задан
  • 1034 просмотра
Пригласить эксперта
Ответы на вопрос 3
@res2001
Developer, ex-admin
В корневые нужно пихать только сертификат ЦА. Это контейнер для них.

Самоподписанный сертификат - это другое. Это когда у вас нет ЦА и вы просто выпускаете сертификат сервера и он сам себя подписывает. Такой простейший вариант сертификата.

Сертификат ЦА - самоподписанный, т.к. его никто не подписывавет, но используете вы сертификат сервера и возможно клиента, а эти оба сертификата подписываются ЦА и они не самоподписанные. В работе используется сертификат ЦА только для проверки подписи предоставленного сертификата сервера и/или клиента, дальше для всего используются серверный и клиентский сертификаты.
Не знаю особенностей Jitsi Meet, но по ссылке нет самоподписанных сертификатов. Там упор делается на использование LetsEncrypt, но по большому счету разницы нет - используете ли вы ЦА от LetsEncrypt или свой собственный. В случае своего ЦА , вы должны обеспечить возможность проверки сертификатов, правильно установив сертификат ЦА, тогда как сертификат LetsEncrypt (и других известных публичных ЦА) обычно уже установлен в системе. Процесс контроля за сроком сертификатов, их перевыпуском, ведением списка отозванных сертификатов и его доступностью то же ложится на вас.

Любой сертификат содержит в себе публичный ключ владельца сертификата. Вторая часть ключа - секретный ключ - идет в отдельном файле. Серктеный ключ ЦА должен находится только на самом ЦА, он требуется только для выпуска новых клиентских сертификатов. В остальных случаях используется только сертификат ЦА, который можно свободно распространять. Аналогично и секретные ключи сервера/клиента - они должны находиться только у владельца ключа.
Ответ написан
@ksnovv
В Вашем случае ca.crt это RootCA который надо поместить в хранилище доверенных (корневых) ЦС. hostname1.crt это сертификат сервера. В хранилище доверенных его помещять не надо. Если он будет использоваться на ОС Windows его надо поместить в локальное хранилище сертификатов (машинное) вместе с закрытым ключом.
Ответ написан
CityCat4
@CityCat4 Куратор тега Цифровые сертификаты
//COPY01 EXEC PGM=IEBGENER
Если развертывается свой CA, то в винде к контейнер "Доверенные корневые..." помещается сертификат этого CA. После этого все сертификаты, выпущенные в этом CA (и в его подчиненных CA, буде есть такие) - станут валидными.
Для линуха скопировать сертификат в /etc/ssl/certs (или куда настроено в openssl) может быть недостаточно, нужно линк создавать.
Насчет именри в сертификате - для веб-сервисов проверяется поле CN, в нем должно быть совпадающее имя.
Какой сертификат здесь имеется в виду?

Сертификат сервиса. Корневой должен находиться в /etc/ssl/certs
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы