Зарегистрируйте сервер, сгенерированный сертификат p12, используя EJBCA SOAP API - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь сгенерировать сертификат p12 для созданного пользователя, используя EJBCA SOAP API в среде python.Документы сообщают мне использовать следующий запрос: pkcs12Req, который возвращает данные хранилища ключей JAVA, закодированные в формате base 64.Как использовать эти данные для создания файла .p12 в среде python без использования JAVA SDK или это невозможно?

http://www.massapi.com/source/manual/ejbca_4_0_3/modules/systemtests/src/org/ejbca/core/protocol/ws/CommonEjbcaWS.java.html#1901

// A new PK12 request now should return the same key and certificate
    KeyStore ksenv2 = ejbcaraws.pkcs12Req(CA1_WSTESTUSER1, "foo456", null, "1024", AlgorithmConstants.KEYALGORITHM_RSA);
    java.security.KeyStore ks2 = KeyStoreHelper.getKeyStore(ksenv2.getKeystoreData(), "PKCS12", "foo456");
    assertNotNull(ks2);
    en = ks2.aliases();
    alias = (String) en.nextElement();
    X509Certificate cert2 = (X509Certificate) ks2.getCertificate(alias);
    assertEquals(cert2.getSubjectDN().toString(), getDN(CA1_WSTESTUSER1));
    PrivateKey privK2 = (PrivateKey) ks2.getKey(alias, "foo456".toCharArray());

Ответы [ 2 ]

0 голосов
/ 06 августа 2018

Команда pkcs12Req возвращает закодированное в base64 хранилище ключей PKCS # 12.Если вы декодируете его с помощью base64, вы получите двоичный двоичный файл / файл, который можно проанализировать с помощью любых стандартных инструментов, таких как openssl.Я не знаком с нативной командой python для PKCS # 12, но с openssl это:

openssl pkcs12 -in ~/tmp/caadmin.p12

Кажется, вы можете использовать pyOpenSSL для его анализа (я думаю, что base64 декодирует его), как описано веще одно сообщение stackoverflow .

0 голосов
/ 11 июня 2018

Я не нашел способа работать с JAVA Keystore в python, поэтому я изменил процесс на использование pkcs10Request и создание сертификата p12 с использованием openssl

...