将aws api网关客户端证书与spring boot mvc rest控制器一起使用的确切步骤是什么?

Fab*_*ien 5 java client-certificates amazon-web-services spring-boot aws-api-gateway

我开发了一个基本的Spring Boot 2.0 / Java 8应用程序,我想使用AWS API Gateway证书进行保护,并确保只有AWS API Gateway可以调用此后端服务。

这是我遵循的步骤

  1. 我在AWS API Gateway中生成了客户端证书
  2. 我在API阶段选择了客户端证书并通过了验证
  3. 我单击“复制”,然后将客户端证书的内容粘贴到 certificate.pem
  4. 我使用以下命令将PEM证书转换为DER编码的证书 openssl x509 -outform der -in certificate.pem -out certificate.der
  5. 我使用keytool使用两次keytool -import -alias tomcat -keystore keystore.jks -file certificate.der -storetype JKS 输入密码的方式将DER编码的证书导入到JKS密钥库中,keytool显示此消息 Certificate was added to keystore
  6. 我感动keystore.jkssrc/main/resources/
  7. 我进行了编辑application.properties以添加这些设置

    • server.ssl.key-store-type = JKS
    • server.ssl.key-store = classpath:keystore.jks
    • server.ssl.key-store-password =密码
    • server.ssl.key-alias = tomcat

当我启动Spring应用程序时,此错误消息是 Alias name [tomcat] does not identify a key entry

在stackoverflow上读取相同的错误消息时,我了解到我肯定会错过这里的私钥,因此需要将其添加到密钥库中。列出条目中的条目将keystore.jkstomcat别名显示为受信任证书而不是privatekeyentry。

有人可以指导我完成整个过程,也可以向我解释在Spring Boot应用程序中使用AWS API Gateway客户端证书所缺少的内容吗?

非常感谢