我使用的是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();现在,我需要详细介绍一些关于公钥的“元数据”:
如何获得x5c?可以用这个库生成X509证书吗?此字段为空:
if (jwk.getX509CertChain() == null)发布于 2019-06-06 14:38:18
您已经生成了密钥对,而不是证书。证书包含公钥,但不是从它派生出来的,因此不能直接从公钥获得证书。
要验证JWT,收件人只需要公钥,因此发布x5c实际上并不是必要的。
如果您真的想发布证书,我建议使用OpenSSL生成证书,并在代码中导入公钥以获得JWK参数。
openssl req -x509 -newkey rsa:2048 -keyout key.pem -days 365 -out certificate.pemhttps://stackoverflow.com/questions/56475619
复制相似问题