首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Spring Boot中启用TLS 1.3时出现问题

在Spring Boot中启用TLS 1.3时出现问题
EN

Stack Overflow用户
提问于 2021-08-14 13:28:11
回答 1查看 700关注 0票数 1

我尝试在我的Spring Boot应用程序中启用TLS 1.3。

我有一个HttpsConfiguration类:

代码语言:javascript
运行
复制
@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> servletContainerCustomizer() {
    return new WebServerFactoryCustomizer<TomcatServletWebServerFactory>() {
        @Override
        public void customize(TomcatServletWebServerFactory factory) {
            factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
                @Override
                public void customize(Connector connector) {
                    AbstractHttp11Protocol<?> httpHandler = ((AbstractHttp11Protocol<?>) connector.getProtocolHandler());
                    httpHandler.setUseServerCipherSuitesOrder(true);
                    httpHandler.setSSLProtocol("TLSv1.3,TLSv1.2");
                    httpHandler.setSSLHonorCipherOrder(true);
                    httpHandler.setCiphers("TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "
                                         + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "
                                         + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "
                                         + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "
                                         + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, "
                                         + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256");
                }
            });
        }
    };
}

}

我的application.properties SSL配置是:

代码语言:javascript
运行
复制
# SSL Settings
server.ssl.key-store=/etc/letsencrypt/live/arbejdsdag.dk/keystore.p12
server.ssl.key-store-password=<redacted>
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat

我还尝试将相关的server.ssl.*行添加到我的application.properties

代码语言:javascript
运行
复制
server.ssl.ciphers=TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
server.ssl.protocol=TLS
server.ssl.enabled-protocols=TLSv1.2,TLSv1.3

但这也不起作用。

我在Ubuntu 18.04和Spring Boot Starter Parent 2.5.3上运行openjdk版本"11.0.11“2021-04-20。

SSL实验室似乎没有接收到此配置SSL Labs scan

我不确定我还需要做些什么才能让它正常工作。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-17 18:43:01

我通过设置TLS 1.3支持的密码解决了这个问题。

代码语言:javascript
运行
复制
@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> servletContainerCustomizer() {
    return new WebServerFactoryCustomizer<TomcatServletWebServerFactory>() {
        @Override
        public void customize(TomcatServletWebServerFactory factory) {
            factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
                @Override
                public void customize(Connector connector) {
                    AbstractHttp11Protocol<?> httpHandler = ((AbstractHttp11Protocol<?>) connector.getProtocolHandler());
                    httpHandler.setUseServerCipherSuitesOrder(true);
                    httpHandler.setSSLHonorCipherOrder(true);
                    httpHandler.setCiphers(
                              "TLS_AES_256_GCM_SHA384, "
                            + "TLS_CHACHA20_POLY1305_SHA256, "
                            + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "
                            + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, "
                            + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "
                      );
                }
            });
        }
    };
}

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68783720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档