从JWK生成x5c证书链

时间:2019-06-06 10:23:52

标签: 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())
        .privateKey((RSAPrivateKey)keyPair.getPrivate())
        .keyUse(KeyUse.SIGNATURE)
        .keyID(UUID.randomUUID().toString())
        .build();

现在,我需要讨论一些有关公钥的“元数据”:

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

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

if (jwk.getX509CertChain() == null)

1 个答案:

答案 0 :(得分:1)

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

要验证JWT,接收者仅需要公共密钥,因此实际上不需要为此发布x5c


如果您真的要发布证书,建议您使用OpenSSL生成该证书,然后将公钥导入代码中以获取JWK参数

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