【发布时间】:2016-02-20 06:34:03
【问题描述】:
我想要做的是,使用提供的测试套件运行 OpenID Connect 的一致性测试是链接 [1]
我们目前的要求是通过 jwks.json ('jwks_uri') 公开公共证书。 我们遵循 'Google OAuth2 cert' 的 'jwks_uri'[2] 并设计了以下 jwks.json 文件来公开我们服务器的公共证书。
{
"keys": [
{
"kty": "RSA",
"alg": "RS256",
"use": "sig",
"n": "94A7FA15D6F59CF3F4E4412880BD3A2EB0CCCE3386AC0768A5B6BD902A8CE78B969516EF35F0CA4E2D922BF0B3274F35A5949BEF680E510007696C409BFB8F058DB05ED21B1E51D3791E9C2F9C7FC35BC65C706BE4E7723A3ABABB84B0AFD591EDB8E0A8920873FC04EB8723EAF9092D31F5E7452E07ACA1894F3C5A09C53B39",
"e": "65537"
}
]
}
为了获得公钥的模数和指数值,我遵循了帖子 [3]。
完成所有这些后,在运行测试套件时,签名验证失败。我觉得我们设置的“n”和“e”值不是正确的编码/加密。目前,它们以十六进制形式输入。但这不是 google cert [2] 中的格式。
你知道吗,
- 如何获取公钥的模数和指数值,在 格式正确吗?
- 我们需要在 'jwks_uri' 中设置的模数和指数值的格式是什么?
[1]http://openid.net/certification/testing/ [2]https://www.googleapis.com/oauth2/v2/certs [3]RSA: Get exponent and modulus given a public key
【问题讨论】:
-
n 显然是十六进制,但 e 几乎肯定是十进制。
标签: openssl rsa public-key