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

问题描述

我开发了一个基本的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 将 DER 编码证书导入到 JKS 密钥库中keytool -import -alias tomcat -keystore keystore.jks -file certificate.der -storetype JKS ,输入密码两次,keytool 显示此消息 Certificate was added to keystore
  6. keystore.jks我搬到src/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.jks显示 tomcat 别名为trustedcertentry 而不是privatekeyentry。

有人可以指导我完成整个过程或解释我在这里缺少什么以将AWS API Gateway 客户端证书与 Spring Boot 应用程序一起使用吗?

非常感谢

标签: javaamazon-web-servicesspring-bootaws-api-gatewayclient-certificates

解决方案


推荐阅读