首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用下面的openssl命令将PKCS8转换为JWK格式

如何使用下面的openssl命令将PKCS8转换为JWK格式
EN

Stack Overflow用户
提问于 2020-04-02 07:41:45
回答 1查看 570关注 0票数 0

如何使用下面的openssl命令将PKCS8转换为JWK格式?

代码语言:javascript
复制
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的article,但不知道如何弥补PKCS8 -> PKCS12或PKCS8 -> JWK之间的差距。寻找任何一种解决方案。

Salesforce代码如下所示:

代码语言:javascript
复制
        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格式进行加密

EN

回答 1

Stack Overflow用户

发布于 2020-04-07 04:45:06

我能够完成这项任务。

  1. 生成证书并作为JWT导入到Salesforce中。正确的article
  2. Reviewed this article将PKCS12转换为PKCS8

总的来说,我们有以下命令

代码语言:javascript
复制
openssl req -newkey rsa:2048 -nodes -keyout private_key.pem -x509 -days 365 -out certificate.pem
openssl x509 -outform der -in certificate.pem -out public_key.der
openssl x509 -in certificate.pem -pubkey > public_key.pem
keytool -importcert -file certificate.pem -keystore keystore.jks -alias mycertificate -storetype jks
openssl pkcs12 -inkey private_key.pem -in certificate.pem -export -out keystore.p12 -name mykey
keytool -importkeystore -destkeystore keystore.jks -srckeystore keystore.p12 -srcstoretype pkcs12 -destalias mykey -srcalias mykey
openssl pkcs12 -in keystore.p12 -nocerts -out certificatename.pem
openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8
openssl rsa -in certificatename.pk8 -passin pass:your_password -outform PEM -pubout -out public_key_for_pk_aes256_with_password.pem

将keystore.jks上传到Salesforce。将公钥提供给其他团队(public_key_for_pk_aes256_with_password.pem)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60982037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档