当前位置: 首页 > 知识库问答 >
问题:

从JWK生成x5c证书链

章博耘
2023-03-14

我使用的是nimbus jose jwt 5.14,我用以下代码生成了RSA密钥对

    KeyPairGenerator gen = KeyPairGenerator.getInstance("RSA");
    gen.initialize(2048);
    KeyPair keyPair = gen.generateKeyPair();
    JWK jwk = new RSAKey.Builder((RSAPublicKey)keyPair.getPublic())
        .privateKey((RSAPrivateKey)keyPair.getPrivate())
        .keyUse(KeyUse.SIGNATURE)
        .keyID(UUID.randomUUID().toString())
        .build();

现在我需要解释一些关于公钥的“元数据”:

  • e
  • 孩子
  • kty
  • n
  • 使用
  • x5c

如何获得x5c?是否可以使用此库生成X509证书?此字段为空:

if (jwk.getX509CertChain() == null)

共有1个答案

姜凯风
2023-03-14

您已生成密钥对,而不是证书。证书包含公钥,但它不是从公钥派生的,因此无法直接从公钥获取证书。

为了验证JWT,接收者只需要公钥,所以发布x5c实际上是不必要的

如果您确实想要发布证书,我建议使用OpenSSL生成证书,并在代码中导入公钥以获取JWK参数

openssl req -x509 -newkey rsa:2048 -keyout key.pem  -days 365 -out certificate.pem
 类似资料:
  • 我正在使用azure sdk从azure密钥库获取密钥。这将返回一个KeyBundle,它的key属性类型为 对于我的代码的不同部分,我需要从jwCrypto JWK制作一个签名令牌。make_signed_token方法使用JsonWebKey。从Azure返回的JsonWebKey(我认为)实际上是同一个类,在不同的包中定义。 有没有办法将Azure JWK变成jwcrypto JWK?我认为

  • 假设我将以下JWK作为一些JWS(RFC7515)的反序列化体,其中出于显示目的,部分省略了模数n JWS头指定签名验证所需的alg和kid字段。 如何从这个构造RSA公钥以便验证签名?在研究了一些相关问题之后,我有以下Java实现,它尝试从中的和字段构建RSA公钥 验证()的结果当前正在返回false。 我尝试过生成RSA密钥对,使用生成密钥进行签名和验证,这很有效。我怀疑我的问题是,上面代码中

  • 感谢你的帮助...

  • 问题是如何在Java中以编程方式生成证书链。换言之,我想用java执行此处详述的操作:http://fusesource.com/docs/broker/5.3/security/i382664.html 当然,我可以为新客户端创建RSA密钥: } 并生成相应的证书: } 然后我生成证书签名请求,并将其保存到csrFile文件: 哪里 现在我应该用CA私钥对CSR进行签名,但我不知道如何在java

  • 我需要生成一个具有以下参数的JWK: > “kty”:键类型 “孩子”:密钥标识 “使用”:“sig”公钥使用 “n”:模数 “e”:“AQAB”公众指数 "x5c": X.509证书链 “x5t”:X.509证书SHA-1指纹 注: > 应包含使用“x5t”(X.509 SHA-1指纹)和“x5c”(X.509证书链)参数的X.509证书 前5个参数(kty,孩子,使用,n,e)相当简单,不是问

  • 本文档提供使用 openssl 生成自签名证书的一个示例,用户也可以根据自己的需求生成符合要求的证书和密钥。 假设实例集群拓扑如下: Name Host IP Services node1 172.16.10.11 DM-master1 node2 172.16.10.12 DM-master2 node3 172.16.10.13 DM-master3 node4 172.16.10.14 DM