- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一个关于 Spring Boot MVC with Tomcat and TLSv1.3 的问题
我曾经有一个 Spring Boot MVC,基于 Tomcat 的 Web 应用程序,具有非常简单的业务逻辑,通过 ssl HTTPS。
根据安全团队的审查,我不得不将 TLS 版本从 TLSv1.2 升级到 TLSv1.3。
想法很简单,可以轻松完成这个任务,我去改变我的属性(property):
server.ssl.enabled-protocols=TLSv1.2
到
server.ssl.enabled-protocols=TLSv1.3
但是,从那时起,我在每个应用程序启动时都会得到这个:
最佳答案
握手后客户端身份验证是 RFC8446 中定义的 TLSv1.3 扩展。 .但是 OpenJDK 没有实现它,也不会实现它。 corresponding issue被标记为“不会修复”。
Tomcat 在 SSLUtilBase.java 中发出警告
if (enabledProtocols.contains(Constants.SSL_PROTO_TLSv1_3) &&
sslHostConfig.getCertificateVerification() == CertificateVerification.OPTIONAL &&
!isTls13RenegAuthAvailable() && warnTls13) {
log.warn(sm.getString("sslUtilBase.tls13.auth"));
}
isTls13RenegAuthAvailable()
方法在
JSSEUtil.java 中定义
@Override
protected boolean isTls13RenegAuthAvailable() {
// TLS 1.3 does not support authentication after the initial handshake
return false;
}
要删除此警告,您可以设置
CertificateVerification在 Tomcat 的 SSLHostConfig 到
NONE
或至
REQUIRED
.您可以通过 Spring Boot 属性
server.ssl.client-auth取值
NONE
,
WANT
和
NEED
.
NONE
.如果您使用客户端证书,请检查每个客户端是否可以使用
NEED
正确验证自己。值(value)。如果您保留它,唯一的风险是使用握手后身份验证的客户端将无法进行身份验证。
关于java - SpringBoot MVC - 警告 : org. apache.tomcat.util.net.SSLUtilBase : The JSSE TLS 1. 3 实现不支持身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64182147/
我正在尝试做基于客户端服务器的 ssl, 这是我的服务器代码: public static void main(String arg[]){ try { KeyStore keyStore =
我找到了介绍 key 生成步骤的教程。它讲述了以下步骤: keytool -genkey -alias clientprivate -keystore client.private -storetyp
在 Java 中使用 JSSE 和 TLS。我在服务器和客户端之间创建了一个安全套接字。在最终让套接字安全连接之后,我仍然对我现有代码的安全性有一个基本问题。我按照教程中的说明进行操作,有时 Java
我正在用 Java 编写一个客户端(需要在桌面 JRE 和 Android 上工作),用于通过 TLS 承载的专有协议(protocol)(特定于我的公司)。我试图找出用 Java 编写 TLS 客户
JSSE 和 JCE 有什么区别。这两者都涉及广泛情况下的加密。我的问题可能没说清楚。由于 JCE 提供了加密功能,我们可以使用它来加密数据,那么为什么我们需要使用 JSSE 来实现也提供加密功能的安
在使用 Windows 上的自定义信任库将我基于 JSSE 的功能 HttpsURLConnection 实现带到 Android 上遇到各种问题后,我遇到了一些我无法得到答案的问题:(Android
我需要通过我的代理(我相信是隧道)建立一个使用 JSSE 建立的 SSL 连接。是否已经有任何库/属性/方法,或者我必须在低级别实现它? 请注意,只需为我的程序的一个子集定义此代理。我程序中的其他 H
我只是在 java 中收集一些关于 SSL/TSL 的信息,因为我们在使用 netty 时甚至不知道我们当前使用的是什么 TLS 协议(protocol)。我们的应用程序在 Java7 上运行,因此
对于大学安全实验室工作,我必须使用 RMI 创建一个简单的客户端/服务器应用程序。对于客户端和服务器之间的安全通信,我想使用 SSL。 Oracle has example所以我尝试使用它。我得到错误
为我的服务器应用程序使用 BouncyCaSTLe FIPS JSSE 和 TLS 提供程序。 org.bouncycastle bcpkix-fips
我正在使用 JSSE 并具有以下代码: private static void setupServerKeystore() throws GeneralSecurityException, IOExc
我有一个 Java 服务器,它接受使用 JSSE 的 SSL 连接,并在流中使用简单的 XML 消息格式。我希望服务器读取完整的消息然后发送回复。事实证明这非常困难,因为 org.xml.sax.XM
我正在编写一个将 SSLEngine 与 NIO 结合使用的应用程序,我同时编写了客户端和服务器。客户端能够连接到服务器,连接后我希望他能够执行 session 恢复/重新协商,但目前运气不好.. 由
我关注了Hardening your web servers ssl ciphers建议使用的指南 ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+A
我正在编写一个使用 SSLEngine 和 NIO 的应用程序,我编写了客户端和服务器。客户端能够连接到服务器,连接后我希望他能够执行 session 恢复/重新协商,但目前没有运气.. 由于使用 S
如果包含一个或多个 PrivateKeyEntry 的 keystore 被指定为信任库,JSSE 是否会根据每个条目中的最终实体证书创建一个信任 anchor ? 换句话说,如果我们有一个包含可信条
我想在 JSSE 中记录客户端发送的 tls 版本、服务器首选版本、服务器首选密码套件等内容。这个怎么做?请注意,我只能使用 Java 代码来执行此操作。不接受解析日志文件。 最佳答案 您可以将 -D
我们正在使用 Maven 2,并且有一个使用 SSL 客户端身份验证保护的 Maven 存储库管理器。为了让 Maven 访问存储库,必须将以下系统属性传递给 Java: javax.net.ssl.
我正在使用 c#-4.0 开发应用程序和 EntireX Broker 9.5.1 我正在尝试转换为 tpcip 连接以使用 ssl。我成功升级了我的 java由于 Java/Software AG
我正在尝试将 jsse.enableSNIExtension 属性设置为 false,但每次尝试时我都会获得 java 手册。 java -Djsse.enableSNIExtension=false
我是一名优秀的程序员,十分优秀!