我的印象是,一旦我获得SSLContext.getDefault()设置了系统属性,就应该返回具有那些设置属性的SSLContext。在以下情况下应与指定的keyStore一起使用。不幸的是,事实并非如此。它回退JVM的默认密钥库。我想念什么吗?
System.setProperty("javax.net.ssl.keyStore", "/valida-location/keyStore.jks");
System.setProperty("javax.net.ssl.keyStorePassword","changeit");
System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true");
answer = SSLContext.getDefault();
答案 0 :(得分:0)
我认为,到answer = SSLContext.getDefault();
即将执行时,与SSLContext相关的分类已被加载。我解决了
System.setProperty("javax.net.ssl.keyStore", "/valida-location/keyStore.jks");
System.setProperty("javax.net.ssl.keyStorePassword","changeit");
在我班的静态课上。这样,在类加载时就设置了属性。感谢@ dave_thompson_085的提示。