通过'jwks_uri'公开证书

时间:2015-11-18 13:35:37

标签: openssl rsa public-key

我要做的是,使用提供的测试套件运行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”值不是正确的编码/加密。目前,它们以十六进制形式输入。但这不是谷歌证书[2]中的格式。

你知道吗,

  1. 如何获取公钥的模数和指数值 格式正确吗?
  2. 我们需要在'jwks_uri'中设置模数和指数值的格式是什么?
  3. [1] http://openid.net/certification/testing/ [2] https://www.googleapis.com/oauth2/v2/certs [3] RSA: Get exponent and modulus given a public key

1 个答案:

答案 0 :(得分:0)

有节点库可以为您创建:https://github.com/dannycoates/pem-jwk

如果您有公钥,则可以运行:

pem-jwk public.pem > public.jwk