标签: pkcs#10

使用 PKCS10 创建 CSR 并在 Swift 中使用 RSA 密钥进行签名

我生成了RSA密钥,我的后端发送了 3 个参数BASE64(签名算法除外)以供CSR我创建:

"subject" : "MIGfMQswCQYDVQQGEwJJUjEvMC0GA1UEAwwmMTAwMDAwMzg1MDA3NjAxMy3YqNmH2LLYp9ivINi12KfYr9mC24wxGTAXBgNVBAUTEDEwMDAwMDM4NTAwNzYwMTMxEzARBgNVBCoMCtio2YfYstin2K8xEzARBgNVBAQMCti12KfYr9mC24wxGjAYBgkqhkiG9w0BCQEWC2luZm9AdWlkLmly",
"extensions" : "MDMwDgYDVR0PAQH/BAQDAgXgMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMCMAkGA1UdEQQCMAA="
"signatureAlgorithm" : "SHA256_WITH_RSA"
Run Code Online (Sandbox Code Playgroud)

我在 Android/java 中有用于BouncyCastle执行此操作的示例代码:

byte[] subjectBytes = EncodingUtils.decode(receivedSubject);
byte[] extensionsBytes = EncodingUtils.decode(receivedExtensions);

X500Name subject = X500Name.getInstance(ASN1Primitive.fromByteArray(subjectBytes));
Extensions extensions = Extensions.getInstance(ASN1Primitive.fromByteArray(extensionsBytes));

PKCS10CertificationRequestBuilder p10Builder = new JcaPKCS10CertificationRequestBuilder(subject, publicKey);

if (extensions != null)
    p10Builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_extensionRequest, extensions);

ContentSigner signer = new ContentSigner() {

    final ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

    @Override
    public AlgorithmIdentifier getAlgorithmIdentifier() {
        return new DefaultSignatureAlgorithmIdentifierFinder()
                .find(receivedAlgorithm);
    }

    @Override
    public OutputStream getOutputStream() {
        return this.outputStream; …
Run Code Online (Sandbox Code Playgroud)

bouncycastle asn.1 csr swift pkcs#10

10
推荐指数
0
解决办法
453
查看次数

是否有CSR'BEGIN'标头的规范?

我注意到OpenSSL和certreq生成PKCS10 CSR的方式有细微的差别:

(以及相同的页脚,但END除外)

PKCS10规范并没有对这些页眉/页脚的任何信息,所以我怀疑他们是不是规范的一部分。我希望能够处理尽可能多的CSR格式,因此:

CSR的“ BEGIN”标头有规范吗?

另外:是否存在其他形式的CSR标头?不是opensl或certreq的CSR生成工具使用什么?

openssl csr pkcs#10 certreq

7
推荐指数
2
解决办法
2051
查看次数

sun.security.x509.CertAndKeyGen和sun.security.pkcs.PKCS10 - 在JDK8中缺失.实施建议

在JDK8中,该类sun.security.x509.CertAndKeyGen不再存在.也sun.security.pkcs.PKCS10缺少了.在JDK7中他们存在.什么可以替代这些类方法?

java security x509certificate pkcs#10

7
推荐指数
2
解决办法
8825
查看次数

如何在 Android 上使用 KeyStore 创建证书签名请求?

我正在使用KeyStoreAPI在 Android 应用程序中生成 SSL 密钥对。我想从公钥/私钥对创建证书签名请求 (CSR),以便可以将其发送到外部 CA 进行签名。

这可能吗?如果可能,我想使用内置的 Android 库而不是 BouncyCastle,以便让 Android 安全地存储密钥。

java ssl android ssl-certificate pkcs#10

5
推荐指数
1
解决办法
7107
查看次数

config中的req_extensions和命令行上的-extensions有什么区别?

OpenSSL Cookbook中的示例openssl root ca config 定义了以下内容(p40):

[req]
...
req_extensions = ca_ext

[ca_ext]
...
Run Code Online (Sandbox Code Playgroud)

稍后(p43),生成根ca密钥,然后生成root ca自签名证书.

openssl req -new \
-config root-ca.conf \
-out root-ca.csr \
-keyout private/root-ca.key

openssl ca -selfsign \
-config root-ca.conf \
-in root-ca.csr \
-out root-ca.crt \
-extensions ca_ext
Run Code Online (Sandbox Code Playgroud)

在这个特定的用例中,req_extensions不是多余的吗?什么时候真的需要req_extension?

openssl csr x509 pkcs#10

2
推荐指数
1
解决办法
5210
查看次数