首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java - path to trustStore - set属性不起作用?

java - path to trustStore - set属性不起作用?
EN

Stack Overflow用户
提问于 2010-01-26 17:48:15
回答 5查看 279.4K关注 0票数 52

我已经设置了一个自签名证书来测试ssl java连接-但是,它拒绝定位java trustStore。除了将类编译到的文件夹(使用netbeans)和/java/jre6/bin中,我还将它的副本保存在/Java/jre6/lib/security中,因为当我运行以下命令- trustStore = null时。

代码语言:javascript
复制
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);
        }
    }
}

如何正确设置路径?

*UPDATE*使用getFile()方法和一些更多的调试数据:

代码语言:javascript
复制
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);
        }
    }
}

运行:运行类路径: C:\Users\Main\Documents\NetBeansProjects\sslTest\build\classes;C:\Users\Main\Documents\NetBeansProjects\sslTest\src at ssltest.Main.main(Main.java:15) javax.net.ssl.trustStore未定义构建成功(总时间:0秒)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-01-26 18:06:38

你有一个拼写错误-它是trustStore

除了使用System.setProperty(..)设置变量之外,您还可以使用

代码语言:javascript
复制
-Djavax.net.ssl.keyStore=path/to/keystore.jks
票数 78
EN

Stack Overflow用户

发布于 2010-01-27 02:12:41

看起来你有一个拼写错误-- "trustStrore“应该是"trustStore",即

代码语言:javascript
复制
System.setProperty("javax.net.ssl.trustStrore", "cacerts.jks");

应该是:

代码语言:javascript
复制
System.setProperty("javax.net.ssl.trustStore", "cacerts.jks");
票数 45
EN

Stack Overflow用户

发布于 2013-09-12 22:28:51

两者都有

代码语言:javascript
复制
-Djavax.net.ssl.trustStore=path/to/trustStore.jks

代码语言:javascript
复制
System.setProperty("javax.net.ssl.trustStore", "cacerts.jks");

做同样的事情,在明智的工作中没有区别。在你的例子中,你只是有一个打字错误。您在javax.net.ssl.trustStore.中拼写错了trustStore

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2138574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档