LINUX.ORG.RU

Автоматизация получения сертефикатов OpenVPN

 


0

1

Здравствуйте! Товарищ попросил помочь, вот думаю как лучше реализовать, решил посоветоваться, кто в теме.

Задача: Он хочет составить конкуренцию VPN сервисам(hideme.ru, doublevpn.com). У него подняты 10 VPN серверов на основе OpenVPN, авторизация по сертификатам, сейчас вот заканчивает с сайтом и личным кабинетом. Получается следующая схема:

  • 1.Клиент заходит на сайт
  • 2.Регистрируется
  • 3.Оплачивает баланс личного кабинета, путем перевода через интеркассу, все это отображается, выбирает тариф из сетки, ему на почту приходит конфиг файл, который клиент вставляет в ПО и получает месяц доступа к 10 серверам, по истечению месяца сертификат отзывается. Как-то так это должно выглядеть, вопрос тут в чем. Как сгенерировать сертификаты именно на месяц, чтобы после того, как он выбрал тариф, счет списался.

    Может кто подкинет идею?

    Я думаю, что тут решение может быть такое. После того как клиент оплатил тариф, послать запрос на генерацию в СА, собрать это все в файлик и отправить на почту. Может еще есть у кого идея. На сколько я ознакомился с проектом, СА у каждого сервера свой, а еще есть цепочки серверов, что тоже усложняет генерацию клинского ключа.. Есть еще второй вариант генерировать на максимальный срок и сделать, чтобы после месяца отозвать сертификат..



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

Рубить бабло твой друг хочет, а писать биллинг и дружить его с обвязкой к какому-нибудь easy-rsa он не хочет. И тут на помощь приходишь ты, призвав волонтёров из интернета. Класс.

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

Ну тоже верно) Попросил помочь просто, не отказывать же)

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

Как сгенерировать сертификаты именно на месяц, чтобы после того, как он выбрал тариф, счет списался.

при генерации вообще-то задаётся продолжительность действия сертификата. Курим easy-rsa и openssl.

А вообще тебе нужен Certification Authority. Например можно потыкать EJBCA - в нём есть консольная морда которую можно куда угодно прикрутить, есть Web Service API(хз насколько богатый, не щупал его)

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

Насколько я понимаю надо объединить 10 серверов в сеть и сделать им 1 Certification Authority, чтобы он раздавал сертификаты пользователям, правильно?

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

Да. Сертификат будет запрашиваться у Certificate Authority(далее CA) и отдаваться пользователю. На серверах будут установлены один и тот же CA-сертификат и уникальные серверные сертификаты для каждого сервера.

Так как CA одинаковые, то каждый сервер пример любого из клиентов(так как их сертификаты подписаны этим CA). Списки отзыва можно автоматически обновлять скачивая с сервера CA, благо EJBCA это позволяет.

Первоначальная настройка EJBCA правда может оказаться делом непростым, но к нему есть пусть и достаточно длинная, но очень подробная официальная документация.

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

Спасибо за подробный ответ! Будет изучать, как это потом к сайту только запилить..Хотя, если у EJBCA есть API, то не думаю, что будут проблемы..

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

Документации действительно много, изучил, довольно интересно, так же проштудировал всю документацию по eary-rsa и openssl. EJBCA действительно оказалось интересной, есть только одно но, которое Вы и упомянули, первоначальная настройка дело муторное, не одной статью на связку EJBCA и openvpn не нашел, хорошо хоть документация подробная. Прочитав все это мне пришла идея, что openssl так же можно реализовать CA и насколько я понял отсюда прикрутить ее к личному кабинету не сложно, не могли бы прокомментировать или может я что-то не понял?

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

Прочитав все это мне пришла идея, что openssl так же можно реализовать CA и насколько я понял отсюда прикрутить ее к личному кабинету не сложно, не могли бы прокомментировать или может я что-то не понял?

Супер, только ты как ты собрался используя голый openssl генерить сертификаты и централизованно их раздавать? На каждый сервер будешь класть приватный ключ CA? Безопасность такого решения - ни к чёрту.

А если приватный ключ CA будет на одном сервере - как ты запросы слать будешь на генерацию новых сертификатов.

Не, можно конечно генерить CSR, слать по SSH на сервер с приватным ключом CA, а потом обратно отдавать сертификат и его приватный ключ. Гланды тоже можно через жопу удалять, ага.

не одной статью на связку EJBCA и openvpn не нашел

Так её и не будет готовой. Кури как использовать web service api и пили связку сам. Там нужен как-минимум шелл-скрипт, который по крону будет обновлять список CRL. И собственно связка личного кабинета пользователя и Web service api самого EJBCA. Так как, как я понял, личный кабинет самописный, то соответственно и интеграцию с EJBCA нужно тоже писать вам самим...

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

Что верно, то верно, ладно, будем пробовать, голый openssl тут конечно не подойдет, безопасность тут тоже согласен...Буду тогда пытаться связать EJBCA и openvpn, а точнее получается api EJBCA и личный кабинет клиента, чтобы потом оттуда взять уже сертификат и скопировать в конфиги GUI. Спасибо за совет, концепцию я понял, буду теперь реализовывать..

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