简体   繁体   English

使用EJBCA SOAP API注册服务器生成的p12证书

[英]Enroll server generated p12 certificate using EJBCA SOAP API

I am trying to generate a p12 certificate for a created user using EJBCA SOAP API in python environment. 我正在尝试在python环境中使用EJBCA SOAP API为创建的用户生成p12证书。 The docs inform me to use the following request: pkcs12Req, which returns a JAVA keystore data encoded in base 64 format. docs通知我使用以下请求:pkcs12Req,它返回以base 64格式编码的JAVA密钥库数据。 How do I use that data to create a .p12 file in python environment without using JAVA sdk or is that not possible? 如何在不使用JAVA sdk的情况下使用这些数据在python环境中创建.p12文件,或者这是不可能的?

http://www.massapi.com/source/manual/ejbca_4_0_3/modules/systemtests/src/org/ejbca/core/protocol/ws/CommonEjbcaWS.java.html#1901 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());

The pkcs12Req command returns an base64 encoded PKCS#12 keystore. pkcs12Req命令返回以base64编码的PKCS#12密钥库。 If you base64 decode it, you will get a binary blob/file that can be parsed with any standard tools, like openssl. 如果对base64进行解码,则会得到一个二进制blob /文件,可以使用任何标准工具(例如openssl)进行解析。 I'm not familiar with native python command for PKCS#12, but with openssl it is: 我不熟悉PKCS#12的本机python命令,但是使用openssl时,它是:

openssl pkcs12 -in ~/tmp/caadmin.p12

It seems you can use pyOpenSSL to parse it (base64 decode it as well I think) as described in another stackoverflow post . 看来您可以使用pyOpenSSL来解析它(我认为base64也可以对其进行解码),如另一stackoverflow post中所述

我发现无法在python中使用JAVA Keystore,因此我将流程更改为使用pkcs10Request并使用openssl创建p12 cert

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM