Доверьтесь самоподписанному сертификату PEM

23
  1. Я настроил прокси-сервер с SSL, используя сертификат PEM. Теперь есть пара машин, на которых я хотел бы доверять этому сертификату автоматически (без жалоб веб-браузера). Как я могу установить сертификат PEM на каждом компьютере?

  2. Кроме того, что более рекомендуется: создание самозаверяющего сертификата или объединение сертификата snakeoil?

Тереза ​​и Джуниор
источник

Ответы:

10

Браузеры имеют список доверенных сертификатов «центра сертификации». Если сертификат сервера подписан одним из этих сертификатов CA и правильно сформирован, вы не получите предупреждение SSL.

Многие браузеры поставляются со многими распространенными сертификатами CA, такими как Verisign, Thawte и т. Д. Большинство браузеров позволяют импортировать новый CA в этот список доверенных CA.

Как и создание собственного самозаверяющего сертификата сервера, вы можете создать собственный самозаверяющий сертификат CA. Затем вы можете использовать это, чтобы подписать сертификат вашего сервера. Если ваш ЦС не предоставлен известной компанией, чего не было бы, если бы он был создан вами, он должен быть явно импортирован на стороне сервера.

Я раньше xcaделал это раньше. Имеются шаблоны для ЦС и HTTP-серверов. Процедура такая:

  • Создайте закрытый ключ для своего CA
  • Создайте самозаверяющий CA, используя этот ключ, используя шаблон «CA»
  • Создайте личный ключ для вашего прокси-сервера
  • Создайте «запрос на подпись сертификата» (CSR), используя второй ключ, ссылаясь на только что созданный центр сертификации.
  • «Подпишите» CSR, и вы получите сертификат прокси-сервера, который ссылается на ваш собственный CA.

Затем вам нужно будет экспортировать (в виде файла, если вы используете xca) сертификат CA (но, конечно, не включать закрытый ключ). .pemБудет сгенерирован , но вы можете изменить расширение на .crt. Когда пользователь нажимает на это, ему будет предложено установить его в Firefox и Internet Explorer и, возможно, в других основных браузерах. Что касается автоматической установки этого .crt, вы можете:

  • использовать групповую политику на IE
  • направьте пользователей на начальную страницу с просьбой загрузить / установить .crt, если они хотят избежать предупреждений.

Затем вы можете использовать функции экспорта по сертификату HTTP-сервера (экспортировать как личный ключ, так и сертификат для серверной части), чтобы поставить его на прокси-сервер.

LawrenceC
источник
17
  1. Скопируйте ваш сертификат /etc/ssl/certsв целевой системе. Затем создайте символическую ссылку, используя хэш, сгенерированный командой, openssl x509 -noout -hash -in ca-certificate-fileзаменяющей ca-certificate-fileваше имя сертификата. Ваш сертификат должен быть принят всеми программами без собственного хранилища сертификатов.

    Для программ с собственным хранилищем сертификатов (браузерами, Java и другими) вам потребуется импортировать сертификат.

  2. Лучше всего создавать свой собственный подписанный или подписанный сертификат.

    Вы можете установить tinyca2и создать свой собственный центр сертификации. Вы можете импортировать сертификат центра сертификации, как описано выше. Создание и развертывание подписанных сертификатов для ваших приложений.

    Раздайте свой сертификат CA тем пользователям, которым нужно доверять вашему сертификату. Возможно, вам придется предоставить информацию о том, как импортировать сертификат для них. ПРЕДУПРЕЖДЕНИЕ. Если они это сделают, вы станете для них еще одним доверенным центром сертификации, поэтому защитите свой центр соответствующим образом.

    Многие инструменты также можно настроить для доверия самозаверяющим сертификатам или сертификатам с ненадежными центрами сертификации. Обычно это одноразовое действие. Это может быть более безопасным, так как при принятии сертификата CA от небезопасного органа доверенным является только принятый сертификат.

BillThor
источник
Можно ли это сделать более конкретным? Например: хост A отправляет почту на хост B и жалуется на невозможность проверить личность B. На хосте B мы создали самозаверяющий сертификат: /etc/ssl/certs/ssl-cert-snakeoil.pem(это то, что пакет Debian ssl-certсоздает для вас). Мы копируем его на хост A и вызываем его /etc/ssl/certs/host-B.pem(поскольку этот хост может уже иметь ssl-cert-snakeoil.pem). Тогда мы бежим ln -s /etc/ssl/certs/host-B.pem $(openssl x509 -noout -hash -in /etc/ssl/certs/host-B.pem).
Алекс Шредер
1
@ AlexSchröder Я редактировал выше. Они не должны импортировать ваш сертификат snakeoil, но если вы настроили свой собственный CA, разумно будет импортировать ваш CA. Я еще не определил проблемы доверия между SMTP-серверами. Большинству клиентов можно поручить доверять отдельным сертификатам.
BillThor
Спасибо. Я нашел этот вопрос, когда искал объяснение записи в журнале, которую я получаю. Объяснение, которое я нашел, заключалось в том, что, когда А будет отправлять почту Б, А сообщит, что невозможно установить личность Б.
Алекс Шредер,
Это именно то, что я искал! -- Спасибо! Теперь я могу использовать davfs для монтирования моего защищенного webDAV без особого раздражения.
Wyatt8740
13

В Debian и Ubuntu вы должны скопировать certificate.pemк , /usr/local/share/ca-certificates/certificate.crtа затем запустить dpkg-reconfigure ca-certificates. /etc/ssl/certsуправляется этой командой.

Том Виггерс
источник