使用证书颁发机构的公钥进行JWT签名验证

4

我正在尝试以下操作:

客户端: 1. 使用头部和载荷生成JSON Web Token(JWT)。 2. 使用我的私钥签名此JWT。我还拥有一张由根CA签名的证书。 3. 将JWT发送到服务器。

服务器端: 1. 验证接收到的JWT。 2. 我只能访问由签署了我的证书的根CA的公钥/证书。

是否可以使用根CA的公钥或证书验证JWT的签名?请注意,我不想使用我的公钥验证JWT,因为有很多客户端都有自己的公私钥对,服务器无法获取所有客户端的公钥。我的目标是使服务器端验证使用根CA的公钥/证书来验证JWT。

这可能吗?

1个回答

4
不,按照你描述的方式是不可能的:你需要实际的证书来:
  1. 使用其中的公钥验证JWT上的签名
  2. 验证证书是否由根CA签名
但是因为第2点,你不需要在带外交换证书,发送者可以将证书与JWT一起发送。因此,你仍然可以满足你的目标,因为你不必单独从客户端获取所有公钥。

8
请注意,JWS有一个名为“x5c”(X.509证书链)的头部参数,用于在序列化的JWS(包括JWT)中传递证书链。请参阅https://tools.ietf.org/html/rfc7515#section-4.1.6。 - frasertweedale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接