首页 > 解决方案 > JWT.io 签名验证

问题描述

我正在 Mirth 中创建一个 JWT 并将构造的消息发送到 oauth2 服务器,但它一直出错。当我将 JWT 放入 jwt.io 时,我得到了有效的标头和有效负载信息,但我的签名返回为无效,我不知道为什么。

我使用以下命令使用 openssl 创建了签名:

openssl req -new -x509 -key /path_to_key/privatekey.pem -out /path_to_key/publickey509.pem

在 Mirth 中,我对 privatekey.pem 文件进行编码

encoded = Packages.org.apache.commons.codec.binary.Base64.decodeBase64('privatekey.pem contents minus header');
keySpec = new Packages.java.security.spec.PKCS8EncodedKeySpec(encoded);
privateKey = keyFac.generatePrivate(keySpec);

当我检查发送的内容并将编码的 JWT 粘贴到 jwt.io 时,我得到无效的签名。我不确定我在哪里或做错了什么。

JWT.io 签名错误:

Public Key in SPKI, PKCS #1, X.509 Certificate, or JWK string format.

Private Key in PKCS #8, PKCS #1, or JWK string format.  The key never leaves your browser.

标签: javascriptopenssljwtmirthjose4j

解决方案


推荐阅读