Jwt 从JWK生成x5c证书链

Jwt 从JWK生成x5c证书链,jwt,rsa,nimbus,Jwt,Rsa,Nimbus,我使用的是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())

我使用的是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)

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

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


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

openssl req -x509 -newkey rsa:2048 -keyout key.pem  -days 365 -out certificate.pem

如何使用其他工具生成证书?