Назад | Перейти на главную страницу

openssl недействительный сертификат CA

Я устанавливаю межсерверный OpenVPN с инфраструктурой PKI и не могу заставить его работать. Я подозреваю, что это что-то в цепочке сертификатов, но не могу объяснить, как это сделать. У меня есть автономный корневой центр сертификации и иерархия сертификатов. Центры сертификации управляются извне с помощью продукта EJBCA. Графически цепочка выглядит так (с измененными названиями):

RootCA -> OnlineSubCA -> SubCA1 -> VPNCA

Я подписал сертификат сервера и клиента с CA VPNCA, и цепочка сертификатов есть в этих системах. Во время отладки OpenVPN я попытался использовать openssl s_server и s_client, что заставило меня поверить, что это цепочка CA. В частности, на сервере:

openssl s_server -cert server.cert -key server.key -CAfile chained.pem -verify 5

и на клиенте

openssl s_client -cert client.cert -key client.key -CAfile chained.pem -verify 5

сервер выплевывает, среди прочего:

depth=3 C = CA, O = My Company, CN = OnlineSubCA
verify error:num=24:invalid CA certificate
verify return:1
depth=3 C = CA, O = My Company, CN = OnlineSubCA
verify error:num=26:unsupported certificate purpose
verify return:1
depth=4 C = CA, O = My Company, CN = RootCA, emailAddress = certs@mycompany.com
verify return:1
depth=3 C = CA, O = My Company, CN = OnlineSubCA
verify return:1
depth=2 CN = SubCA1, O = My Company, C = CA
verify return:1
depth=1 CN = VPNCA
verify return:1
depth=0 C = CA, ST = , L = , O = My Company, OU = , CN = client1.mycompany.com, emailAddress = pki@mycompany.com
verify return:1

и я не могу объяснить, как и почему это так. OpenVPN также не работает с аналогичной ошибкой со стороны клиента:

VERIFY ERROR: depth=3, error=invalid CA certificate: /C=CA/O=My_Company/CN=OnlineSubCA

Я использую OpenVPN 2.2.1 и OpenSSL 1.0.1 в Ubuntu 12.04. Время синхронизировано на обоих.

Я не понимаю, как поступить дальше. Приветствуются любые идеи / предложения.

Это проблема с расширениями X509v3. Современные сертификаты подписаны способом, указывающим на одобренное использование этого типа сертификата. Их можно отобразить, подключив сертификат к openssl x509 -text, или указав путь к файлу с помощью -in.

В вашем случае эти сообщения об ошибках указывают на то, что указанный вами сертификат не является сертификатом CA. (самый большой намек - «неподдерживаемая цель сертификата»). Используя указанную выше команду, отобразите текстовую информацию о сертификате. Действительный сертификат CA будет выглядеть так:

        X509v3 Basic Constraints:
            CA:TRUE

Вместо сертификата CA будет отображаться следующее:

        X509v3 Basic Constraints:
            CA:FALSE

Возможно, ваши файлы перемешались, это довольно просто сделать при перемещении файлов. openssl x509 посветит в увеличительное стекло, что собой представляет содержимое сертификатов.