如何使用 AES-256 在 Spring Boot 上设置 SSL (TLS) / HTTPS?
Posted
技术标签:
【中文标题】如何使用 AES-256 在 Spring Boot 上设置 SSL (TLS) / HTTPS?【英文标题】:How to set up SSL (TLS) / HTTPS on Spring Boot using AES-256? 【发布时间】:2015-08-04 22:36:01 【问题描述】:我使用 RSA (How to configure SSL / HTTPS on Spring?) 在我的 Spring Boot 服务器上设置了 SSL,方法如下 their guide:
使用keytool -genkey -alias <alias> -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
创建了一个新的密钥库和密钥
将这些行放在我的 application.properties 文件中:
server.port: 8443
server.ssl.key-store: classpath:keystore.p12
server.ssl.key-store-password: <keystore password>
server.ssl.key-password = <key password>
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: <alias>
像魅力一样工作。但是,当我通过运行keytool -genseckey -keystore keystore.jck -storetype JCEKS -storepass <store pass> -keyalg AES -keysize 256 -alias <alias> -keypass <key pass>
生成 AES 256 密钥并将 .properties 文件更改为新的密钥库/密钥值时,对服务器的每个请求都会生成0 EMPTY RESPONSE
。我应该遵循哪些步骤才能成功配置它?
【问题讨论】:
你遇到了什么错误(如果有的话)? 刚刚编辑了我的问题。对不起!应用程序本身不会抛出异常,但每个请求都会导致0 EMPTY RESPONSE
。
您能否编辑您的问题以描述您所采取的步骤,而不仅仅是指向指南?我们无法知道您是否真的正确地遵循了指南。
@Kenster 抱歉,我刚刚更新了它。我认为我正确地遵循了指南,因为它可以工作,而不是使用我需要的那种密码:/
【参考方案1】:
知道了。解决了。密钥算法与您要使用的密码(在我的情况下为 AES 256)几乎没有关系。让它与常规的 RSA、PKCS12 密钥一起工作。
然后,在 application.properties 中设置下一个属性:
server.ssl.ciphers=ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA
server.ssl.protocol=TLS
【讨论】:
【参考方案2】:我有同样的问题。 将 JDK 1.6 更改为 1.8 有效。
【讨论】:
【参考方案3】:我在使用 Spring Boot 和嵌入式 Tomcat 时遇到问题,因为我的密钥没有“tomcat”别名... 使用“tomcat”别名创建密钥解决了问题(嵌入式 Tomcat 没有获取其他密钥?)
【讨论】:
以上是关于如何使用 AES-256 在 Spring Boot 上设置 SSL (TLS) / HTTPS?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security Saml 2.0 是不是支持断言级别加密和 AES-256 作为加密算法?
如何在 Android 中使用自己的密钥进行 AES-256 加密?