Jwt 从JWK生成x5c证书链
我使用的是nimbus jose jwt 5.14,我用以下代码生成了RSA密钥对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())
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
if (jwk.getX509CertChain() == null)
您已生成密钥对,而不是证书。证书包含公钥,但它不是从公钥派生的,因此无法直接从公钥获取证书 为了验证JWT,接收者只需要公钥,因此发布
x5c
实际上是不必要的
如果您确实想要发布证书,我建议使用OpenSSL生成证书,并在代码中导入公钥以获取JWK参数
openssl req -x509 -newkey rsa:2048 -keyout key.pem -days 365 -out certificate.pem
如何使用其他工具生成证书?