Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SSL异常-";基本大小必须是64的倍数……”;_Java_Ssl - Fatal编程技术网

Java SSL异常-";基本大小必须是64的倍数……”;

Java SSL异常-";基本大小必须是64的倍数……”;,java,ssl,Java,Ssl,我试图实现一个非常简单的SSL客户机来向服务器发送HTTPS POST请求,我遇到了这个看似无害的异常。JSSE参考指南尚未使用。非常感谢 SSLContext ctx = SSLContext.getInstance("SSL"); // Accept-all trust manager TrustManager[] trustEverything = { new DefaultTrustManager() }; // Keystore file in local direct

我试图实现一个非常简单的SSL客户机来向服务器发送HTTPS POST请求,我遇到了这个看似无害的异常。JSSE参考指南尚未使用。非常感谢

SSLContext ctx = SSLContext.getInstance("SSL");
// Accept-all trust manager
TrustManager[] trustEverything = { new DefaultTrustManager() };       

// Keystore file in local directory
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(new java.io.FileInputStream("keystore"),"123456".toCharArray());

// Key manager  
KeyManager[] managers;
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks, "123456".toCharArray());
managers = kmf.getKeyManagers();

ctx.init(managers, trustEverything, new SecureRandom());
SSLSocketFactory sslFact = (SSLSocketFactory) ctx.getSocketFactory();
// Connect to internal SSL-enabled server
SSLSocket socket = (SSLSocket) sslFact.createSocket("10.131.149.36", 8443);
我尝试握手时会立即引发异常:

socket.startHandshake();
我试图找到这些参数的初始化位置,但没有用。请让我觉得自己很傻

Caused by: java.security.InvalidAlgorithmParameterException: Prime size must be multiple of 64, and can only range from 512 to 1024 (inclusive)
at     com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120)
at java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:658)
at sun.security.ssl.DHCrypt.<init>(DHCrypt.java:117)
由以下原因引起:java.security.invalidalgorithParameterException:Prime size必须是64的倍数,并且只能在512到1024(包括)之间
位于com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120)
位于java.security.KeyPairGenerator$Delegate.initialize(KeyPairGenerator.java:658)
位于sun.security.ssl.DHCrypt(DHCrypt.java:117)

与JCE无关。DH密钥大小的硬限制似乎已经得到了回答:您是否检查了此问题?当密钥库为空时,您可能会遇到此错误。我用扩展的JCE策略替换了JRE中的fils;还是不行@ThinkStip:在这种情况下,它不会在密钥库负载上抛出异常吗?谢谢