当前位置: 首页 > 面试题库 >

java-trustStore的路径-set属性不起作用?

陈正业
2023-03-14
问题内容

我已经设置了一个自签名证书来测试ssl java连接-但是,它拒绝查找java
trustStore。除了将类编译到的文件夹(使用netbeans)(以及使用netbeans)之外,我还将其副本保存在/ Java / jre6 /
lib / security中,以及上述都不起作用,因为当我运行以下命令时-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);
        }
    }
}

如何正确设置路径?

* 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);
        }
    }
}

运行:java.lang.NullPointerException类路径: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秒)


问题答案:

您有错字-是trustStore

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

-Djavax.net.ssl.keyStore=path/to/keystore.jks


 类似资料:
  • 所以我试图从我的Java代码访问HTTPS服务器,但由于本地主机和服务器之间的SSL握手问题,我无法访问。我试图访问的服务器具有从专用证书颁发机构颁发的有效证书。 因此,经过一些研究,我将CA根证书导入到JVM信任存储中。我如下所示使用keytool命令将证书导入到JRE。keytool-import-alias mycertificate-keystore..\lib\security\cace

  • 问题内容: 我有以下结构 include.php文件具有以下内容 在index.php页面中,我包括了 当我打开页面index.php时,出现以下警告和致命错误。我不明白是什么原因导致此错误。当我给出绝对路径时,它可以工作。但是我相信绝对的路线不是一个好主意。 提前致谢 问题答案: 采用 获取脚本的当前路径,这应该可以解决您的问题。 所以: 这样可以防止您可以从其他文件夹运行PHP脚本的情况,因此

  • 问题内容: 任何人都可以解释一下Spring中path属性如何将对象从html形式绑定到Java类。我是Spring Web Framework的新手,请帮忙。 问题答案: 长话短说,使用Java bean约定将path属性绑定到Java属性中。例如以下形式: 以及以下控制器处理程序方法: 如果使用以下属性定义了Student类,则将自动绑定: 规范文档的第8.3节提供了有关JavaBeans对流

  • 问题内容: 我已将项目导出到Eclipse中的可运行JAR。我的代码中有几个地方完成了以下操作。 现在,该项目为JAR形式,这些目录似乎不存在,并且加载这些文件失败。我很确定我要引用的文件都打包在JAR中。在导出到JAR时,目录是否以任何特定方式更改?关于如何进行这项工作还有其他想法吗? 问题答案: 您需要将它们视为类路径资源,而不是本地磁盘文件系统路径。当您将文件打包到JAR中并且您也不想依赖于

  • 我在一个android应用程序中工作,正在使用一个DialogFragment来显示一个对话框,我想让那个DialogFragment不可取消。我已经将对话框可取消属性设置为false,但它仍然不受影响。 请查看我的代码,并建议我一个解决方案。

  • 问题内容: 任何人都知道为什么该命令在Windows中可以正常工作,但是在Linux中,我得到了ClassNotFoundException game.ui.Main 我的文件夹结构如下:lib /-Jars游戏/-类文件 这是最新的Java 6。 问题答案: 类路径语法与操作系统有关。来自维基百科: 命令行Classpath语法与文件系统密切相关,取决于操作系统。例如: 在所有类似Unix的操作