Моя компания использует OpenVPN для подключения наших клиентов к нашему центральному серверу для упрощения управления. Наше программное обеспечение межсетевого экрана (и их программное обеспечение) имеет встроенную поддержку OpenVPN и включает генератор сертификатов. Недавно этот генератор перестал работать, и мы не знаем почему. Однако раньше это было сложно, поэтому мы хотим попробовать новый подход.
Мы хотели бы просто сгенерировать клиентские сертификаты на локальном компьютере с OpenVPN, а не в программном обеспечении брандмауэра, так как это кажется ошибочным. У нас есть действующий центр сертификации, и у меня есть полный сертификат, читаемый в виде открытого текста. Это, очевидно, включает всю информацию об эмитенте, модуль, подпись и сам сертификат.
Тогда у меня вопрос: могу ли я использовать OpenVPN в дистрибутиве Linux на базе Debian для генерации клиентских сертификатов из существующего центра сертификации? Я мог бы регенерировать и подписать новый ЦС, но я бы не стал этого делать, поскольку у нас довольно много клиентов, и обновление их сертификата VPN-клиента было бы проблемой.
Я пробовал создать CA с помощью OpenVPN и изменить данные сертификата на тот, который мне нужен, но OpenVPN, похоже, генерирует немного другой формат, чем мой.
ЦС и клиенты - PKCS12. Это возможно? Или мне придется все переделывать?
Конечно, а почему бы и нет?
openssl pkcs12 -in ca.pfx -out ca.crt -clcerts -nokeys openssl pkcs12 -in ca.pfx -out ca.key -nocerts -nodes
openssl genrsa -out client.key 4096 openssl req -sha256 -out client.csr -key client.key -new
openssl x509 -sha256 -req -days 365 -CA ca.crt -CAkey ca.key \ -in client.csr -set_serial 01 -out client.crt
openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx
Одно замечание: если вы хотите, чтобы этот сертификат клиента был полезен для Azure, вам необходимо, чтобы в сертификате присутствовало расширение extendedKeyUsage = clientAuth. Если этого не сделать, в журнале не будет отображаться никаких ошибок, а только Azure отключит соединение после некоторых ключевых проверок.
Видеть https://stackoverflow.com/questions/17089889/openssl-x509v3-extended-key-usage для некоторых указателей, чтобы добавить это в сертификат.