one*_*day 49 java ssl jsse keystore truststore
我已经设置了一个自签名证书来测试ssl java连接 - 但是,它拒绝找到java trustStore.我已经在/ Java/jre6/lib/security中保存了它的副本,除了编译类的文件夹(使用netbeans)以及/ java/jre6/bin之外,上述任何一个都不起作用,因为当我运行以下 - trustStore = null.
public class ShowTrustStore {
public static void main(String[] args) {
System.setProperty("javax.net.ssl.keyStore", "keystore.jks");
System.setProperty("javax.net.ssl.trustStrore", "cacerts.jks");
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
String trustStore = System.getProperty("javax.net.ssl.trustStore");
if (trustStore == null) {
System.out.println("javax.net.ssl.trustStore is not defined");
} else {
System.out.println("javax.net.ssl.trustStore = " + trustStore);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何正确设置路径?
**********UPDATE************使用getFile()方法和一些其他调试数据:
package ssltest;
public class Main {
public static void main(String[] args) {
// System.setProperty("javax.net.ssl.keyStore", "/keystore.jks");
// System.setProperty("javax.net.ssl.trustStrore", "/java.home/cacerts.jks");
// System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
// System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
try {
Main.class.getResource("trustStore.jks").getFile();
} catch (Exception e) {
e.printStackTrace();
}
String trustStore = System.getProperty("javax.net.ssl.trustStore");
if (trustStore == null) {
String storeLoc;
storeLoc = System.getProperty("java.class.path");
System.out.println("classpath: " + storeLoc);
}
trustStore = System.getProperty("javax.net.ssl.trustStore");
if (trustStore == null) {
System.out.println("javax.net.ssl.trustStore is not defined");
} else {
System.out.println("javax.net.ssl.trustStore = " + trustStore);
}
}
}
Run Code Online (Sandbox Code Playgroud)
运行:java.lang.NullPointerException类路径:C:\ Users\Main\Documents\NetBeansProjects\sslTest\build\classes; ssltest.Main.main中的C:\ Users\Main\Documents\NetBeansProjects\sslTest\src(Main.java :15)javax.net.ssl.trustStore未定义BUILD SUCCESSFUL(总时间:0秒)
Boz*_*zho 68
你有一个错字 - 它是trustStore
.
除了设置变量外System.setProperty(..)
,您还可以使用
-Djavax.net.ssl.keyStore=path/to/keystore.jks
Run Code Online (Sandbox Code Playgroud)
小智 44
看起来你有一个错字 - "trustStrore"应该是"trustStore",即
System.setProperty("javax.net.ssl.trustStrore", "cacerts.jks");
Run Code Online (Sandbox Code Playgroud)
应该:
System.setProperty("javax.net.ssl.trustStore", "cacerts.jks");
Run Code Online (Sandbox Code Playgroud)
Ani*_*kur 12
Both
-Djavax.net.ssl.trustStore=path/to/trustStore.jks
Run Code Online (Sandbox Code Playgroud)
and
System.setProperty("javax.net.ssl.trustStore", "cacerts.jks");
Run Code Online (Sandbox Code Playgroud)
do the same thing and have no difference working wise. In your case you just have a typo. You have misspelled trustStore
in javax.net.ssl.trustStore.
归档时间: |
|
查看次数: |
230393 次 |
最近记录: |