LINUX.ORG.RU
решено ФорумAdmin

PKI, собственный CA для локальных веб ресурсов.

 ,


1

2

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

Пару дней пытаюсь изучить вопрос реализации локального центра сертификации, для внутри доменных веб-ресурсов (Zabbix, Glpi).

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

Прошу поделится «бест практикс» в решении подобной задачи. Какими методы можно использовать? Просьба поделится опытом.

Заранее благодарю, и с настующим комъюнити!

Тебе не нужен виндовый CA, openssl покроет твой функционал на 100500%

Сертификат это публичный ключ с некоторой доп инфой, т.е. за каждым сертификатом стоит публичный и приватный ключик. Для своего CA тебе надо:

  1. Сгенерировать пару ключей для root сертификата и выпустить для них сертификат - это будет обычный самоподписанный (подписанный своим же приватным ключем) сертификат
  2. Корневой сертификат !!! Без приватного ключа !!! добавь в список доверенных CA на все системы где собираешся использовать сертификаты которые будешь выпускать
  3. Начинаешь генерить сертификаты для девайсов - генерации пары ключей, генерация на основе ключей запроса на новый сертификат (csr), выпуск сертификата (Подпись csr с использованием приватного root ключа)
sparks ★★★★
()

Недавно открыл для себя Hashicorp Vault в качестве CA - очень удобно при условии автоматизации (т.к. JSON). Использую с ансиблом.

MumiyTroll ★★★
()

Openvpn предлагает easy-rsa. С gui есть xca. Сейчас имеет смысл получать от let's encrypt. Вопрос в том, как их потом установить. Вручную, или через систему централизованного управления конфигурациями.

boowai ★★★★
()

Прошу поделится «бест практикс» в решении подобной задачи.

гугл забит разного качества хаутушками. Какие ещё бестрпрактикс и сукесторис ты ждёшь?

Пробуй, делай и возвращайся с конкретными вопросами.

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

Тогда никак. Поэтому стоит подумать об этом в самом начале, чтобы потом не переделывать. Получается примерно как с белыми и серыми адресами.

boowai ★★★★
()

Промежуточный итог

Развернул локальный корневой/промежуточный CA. Проблем нету, все понятно.


При подписании сертификата локальной веб-службы, на выходе имею два файла:

  • mysite.com.cert.pem
  • ca-chain.cert.pem

Подскажите пожалуйста, требуется ли разворачивать сертификат веб-ресурса, и цепочки доверия на клиентской машине (Windows). Или же достаточно задеплоить на веб-сервер?

Заранее спасибо за ответ.

lckrspirit
() автор топика
Ответ на: Промежуточный итог от lckrspirit

Или же достаточно задеплоить на веб-сервер?

Если самоподписанный, то конечно нет.

Проблема ещё в чём. Браузеры могут и не использовать системное хранилище, особенно Mozilla.

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

В Firefox работает после добавления через настройки браузера. В IE работает после добавления в локальное хранилище. А chrome напрочь отвергает валидность сертификата.

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

Solved!

Вообщем, получилось разобрать в теме локального PKI. Прикрутил к парочке локальных серверов, работает!

Также разобрался в проблеме валидности сертификата, при обращении из Google chrome. Как оказалось, при генерации csr является обязательным указание поля SAN

subjectAltName  = DNS:mysite.example.com

В конфиге выглядит так

И хочу отметить один нюанс насчет csr-запроса из под виндузятни. При формировании запроса средствами IIS, также возникнет проблема валидности. Решением оказалось сформировать «кастомный» настраиваемый запрос через оснастку.

Всем спасибо!

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

Вариантов на самом деле несколько:

1) можно красноглазить на чистом openssl. Придется вкурить теории(ее придется вкуривать в любом случае, хотя бы до понимания что такое «приватный ключ», «корневой сертификат», «промежуточный сертификат») и написать пяток bash-скриптов. Если есть много времени и желания понять как это всё работает изнутри и не боишься красноглазить - вариант неплохой. Да, в результате ты скорее всего тупо изобретешь велосипед, но зато его размер, вес и диаметр колес будут уникальны :-)
2) easy-rsa из состава openvpn. Почти что вариант 1, только скрипты за тебя уже понаписали. Скрипты не так чтобы супер, но если нет желания красноглазить и пользоваться другими вариантами - вполне себе...
3) xca. Графическая оболочка. Кроссплатформенная, на Qt. Базу сертификатов пишет в файл, опционально шифрует. Если есть минимум знаний по теории, не хочется писать скрипты и при этом НЕ нужно выписывать сертификаты массово - вариант самый что ни на есть подходящий. Я в одной небольшой конторе использую - вполне себе
4) EJBCA. То, чем пользуйсь я на основной работе. Штука ынтерпрайзная, есть свое API, консольный клиент, веб-морда. Умеет в интеграцию с оффтопиковым Autoenrollment(сам не щупал, но кому-то может быть очень важно, если нет желания поднимать вендовый CA). Документация достаточно подробная. Из минусов - Java+Wildfly в качестве платформы куда он ставится. Если нет опыта с JBoss/Wildfly - готовься к тысячелетиям боли и чтению вороха талмудов, а также к правке километров xml-файлов. Щито поделать, ынтерпрайз он такой...

Был еще OpenCA, но он, увы, сдох.

Update: а еще надо бы мне взять на заметку дочитывать тред до конца, а то мои размышления тут особо уже и не нужны :-/

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

Ого, спасибо за представленные решения, и комментарий к каждому! Думаю ваш ответ будет хорошим толчком для тех кто в поисках подобного.

Для себя отметил xca, разверну на лабе.

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