gpt4 book ai didi

java - 如何在 ssl 的 java 应用程序服务器中禁用弱密码套件

转载 作者:太空宇宙 更新时间:2023-11-03 13:16:08 24 4
gpt4 key购买 nike

我有一个自定义的 Java 应用程序服务器正在运行。我看到服务器支持一些弱密码套装,例如一些 112 位密码。我想禁用那些。我在哪里可以穿那个。我还想启用 TLSv1.2。以下是初始化套接字的代码。

        KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream(sslstore), sslstorepass.toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, sslcertpass.toCharArray());

SSLContext sc = SSLContext.getInstance("TLS");
sc.init(kmf.getKeyManagers(), null, new SecureRandom());
SSLServerSocketFactory ssf = sc.getServerSocketFactory();
serverSocket = ssf.createServerSocket(port);

System.out.println("Socket initialized");

最佳答案

JAVA 允许在名为 java.security 的安全策略文件中删除/排除使用密码套件它位于您的 JRE: $PATH/[JRE]/lib/security jdk.tls.disabledAlgorithms策略文件中的属性控制 TLS 密码选择。 jdk.certpath.disabledAlgorithms控制您将在 SSL 证书中遇到的算法。 Oracle 有关于此的更多信息 here

在安全策略文件中,如果您输入以下内容:jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA keySize < 4096它会成功,因此永远不允许使用 MD5、SHA1、DSA,并且仅当 key 至少为 4096 位时才允许使用 RSA。

解决tls版本问题。只需要把 SSLContext sc = SSLContext.getInstance("TLSv1.2");它将支持所有版本。

关于java - 如何在 ssl 的 java 应用程序服务器中禁用弱密码套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36597380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com