1

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

1 回答 1

1

我想在answer = SSLContext.getDefault();即将执行的时候,SSLContext 相关的类已经被加载了。我把它解决了

System.setProperty("javax.net.ssl.keyStore", "/valida-location/keyStore.jks"); System.setProperty("javax.net.ssl.keyStorePassword","changeit"); 在我班的静态块中。这样,在类加载时就设置了属性。感谢@dave_thompson_085 的提示。

于 2018-11-10T14:33:00.273 回答