在获取默认SSL上下文之前,以编程方式设置密钥库

时间:2018-11-09 21:58:10

标签: java security java-security java-security-manager

我的印象是,一旦我获得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();

1 个答案:

答案 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的提示。