使用AWS API Gateway的客户端证书

swa*_*m92 7 authentication ssl https client-certificates aws-api-gateway

我正在尝试为aws api网关和我的服务器之间的通信实现相互身份验证.我想使用亚马逊提供的客户端证书进行身份验证.我知道我的服务器配置正确,因为之前我使用的是lambda函数,并且相互认证正常.

我已导出(.PEM)证书并将其添加到信任库中.我已将Jetty服务器配置为使用该信任库进行身份验证.我已将client-auth设置为:need.我知道我的服务器设置正确,因为它正在使用我自己实现的相互SSL.我所做的就是改变信任库.当我测试我的方法网关时返回200:{"message":"未知端点错误."}

以下是服务器日志文件的摘录.似乎服务器端握手完成,但客户端证书出错.

pConnection @ 3a0a2e84 {FILLING}服务器端握手完成2015-09-28 13:04:29,856 DEBUG [qtp1980278840-19] oejiChannelEndPoint - 刷新45 SelectChannelEndPoint@2c05eeb2{ec2-xx-xxx-xxx-x.compute-1.amazonaws .com/5x.xxx.xxx.x:43942 < - > 4000,Open,in,out, - , - ,0/200000,SslConnection} {io = 0,kio = 0,kro = 1} 2015-09- 28 13:04:29,856 DEBUG [qtp1980278840-19] oejisSslConnection - SslConnection @ 50e2de43 {NOT_HANDSHAKING,eio = 0/0,di = -1} - > HttpConnection @ 3a0a2e84 {FILLING}刷新退出,消耗0 2015-09-28 13 :04:29,856 DEBUG [qtp1980278840-19] oejisSslConnection - SslConnection @ 50e2de43 {NOT_HANDSHAKING,eio = 0/-1,di = -1} - > HttpConnection @ 3a0a2e84 {FILLING} unwrap Status = BUFFER_UNDERFLOW HandshakeStatus = NOT_HANDSHAKING

swa*_*m92 8

我已经解决了这个问题.我发布的服务器日志具有误导性.没有握手,因为我使用的服务器证书是自签名的,没有受信任的CA签名.自2015年9月28日起,aws api网关需要由受信任的证书颁发机构签名的证书.因为我的证书是自签名的,所以服务器(和客户端)握手没有完成.希望这个问题将在未来版本中得到解决.

  • 对于其他用户,此处的文档介绍了在API网关和服务器之间设置客户端证书身份验证。.https://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-client-side-ssl- authentication.html (2认同)