Как установить ssl сертификаты программно (OpenSSL) - PullRequest
2 голосов
/ 09 июня 2011

У меня есть приложение, над которым я работаю для клиента, которое в итоге позволяет каждому из своих клиентов создать свою собственную версию приложения, настроив шаблоны и связав свое собственное доменное имя (весь код находится на моемклиентский сервер).

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

Я знаю, что можно создать самозаверяющий сертификат, и я «думаю», что существует довольно простой способ сделать это программно, НО, если я хочу дать пользователям возможность приобрести собственный сертификат, подписанный СА, то какэто должно быть выполнено?

Я потратил несколько часов, пытаясь найти ответ на этот вопрос в Интернете, но, похоже, не могу найти решение этой непонятной проблемы.

Что мне нужноэто простой код, который позволяет пользователю заполнить формуполе, которое, в свою очередь, создает файл CSR, который, в свою очередь, пользователь предоставит СА для получения своего файла CA и для которого некоторый код должен будет позволить пользователю загрузить его ... который, в свою очередь, автоматически установит его и переделаетнеобходимые веб-сервисы.

Любая / вся помощь и руководство будет принята с благодарностью!

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Как вы поступите, зависит от вашей архитектуры. Но вот пара вещей для рассмотрения:

  1. Большинство конфигураций SSL работают с уникальным IP-адресом. Это означает, что для каждого добавляемого SSL-сертификата требуется другой IP-адрес. Вы можете централизовать эту конфигурацию, если, например, используете балансировщик нагрузки. Возможность или нет сделать это программно зависит от вашего балансировщика нагрузки.
  2. Лучше всего будет генерировать CSR на основе вашего закрытого ключа. В противном случае вам придется разрешить пользователям загружать как закрытый ключ, так и сертификат (а иногда и цепочку).
1 голос
/ 09 июня 2011

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

Вы можете создать веб-страницу PHP, которая создает закрытый ключ иCSR (см. openssl_csr_new примеры) и позволяет пользователю копировать CSR в формате PEM (и закрытый ключ для дальнейшего использования).Некоторые центры сертификации позволят вам вставить такой CSR в форму при запросе сертификата.Как только пользователь получит сертификат (и, возможно, цепочку от ЦС), ему нужно будет настроить сервер для его использования (вместе с закрытым ключом).Такие инструменты, как Webmin, могут позволить вам сделать это из веб-браузера (вы можете реализовать нечто подобное тому, что Webmin делает для этого, если вы не хотите развертывать полный веб-интерфейс администрирования).

Если задача запроса сертификата является обязанностью вашего клиента (что и должно быть на самом деле, если это его сервер), их нужно немного обучить, чтобы знать, что делать, так как процедура неизбежно будет немного отличаться в зависимости от выбранного ими ЦС..

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

...