【发布时间】:2021-12-30 07:26:51
【问题描述】:
我正在尝试使用 .jks 文件来签署 jwt 令牌。我使用的库是 pyjwt 和 pyjks。下面是sn-ps的代码:
userDto = user
payload = {
"iss": "test",
"exp": datetime.now(tz=timezone.utc) + timedelta(days=365),
"iat": datetime.now(tz=timezone.utc),
"nbf": datetime.now(tz=timezone.utc),
"sub": "testUser",
"auth": userDto
}
keystorePath = os.path.abspath("KeyStore.jks")
keystorePass = "test"
keyAlias = "test"
keystore = jks.KeyStore.load(keystorePath, keystorePass)
pk = keystore.private_keys[keyAlias]
encoded = jwt.encode(payload, pk, algorithm="RS512")
在执行最后一行代码以使用 jks 签名生成 jwt 时,它会抛出错误,提示需要 PEM 格式的密钥。我认为 pk 格式不是 jwk 所需要的。我的问题是如何从 .jks 中提取 pem 文件格式的文件来签署 jwk 令牌?谢谢。
【问题讨论】:
-
任何帮助将不胜感激。谢谢。
标签: python-3.x pem jks pyjwt pyjks