我正在 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.