给定下面的 openssl 命令,如何将 PKCS8 转换为 JWK 格式?
openssl genrsa -des3 -passout pass:foobar -out private_key_des3_with_password.pem 2048
openssl pkcs8 -topk8 -inform PEM -in private_key_des3_with_password.pem -outform PEM -out private_key_des3_with_password_pkcs8.pem -passin pass:foobar -passout pass:foobar
openssl rsa -in private_key_des3_with_password.pem -passin pass:foobar -outform PEM -pubout -out public_key_for_pk_des3_with_password.pem
寻求将 PKCS8 密钥转换为 JWK 格式的帮助,以便我可以通过“CertificatesAndKeysManagement”将密钥上传到 Salesforce。
Salesforce 需要 JWK 来上传密钥,并将用于加密 JWT。我还找到了一篇将PKCS12转换为JWT的文章,但不知道如何弥合PKCS8 -> PKCS12或PKCS8 -> JWK的差距。寻找任一解决方案。
Salesforce 代码如下所示:
Map<String, String> claims = new Map<String, String>{
'claim'=> 'myClaims'
};
Auth.JWT jw = new Auth.JWT();
jw.setAdditionalClaims(claims);
jw.setValidityLength(60);
Auth.JWS sig = new Auth.JWS(jw, 'mykey');
return sig.getCompactSerialization();
将验证声明的库需要 PKCS8 格式,但 Salesforce 需要 JWK 格式来加密