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

您是否不需要密码即可访问信任库(由Java keytool制成)?

侯涵煦
2023-03-14
问题内容

我刚刚使用Java密钥工具创建了一个信任库(用于不具有CA证书的服务器的服务器身份验证)。但是我只是注意到一些奇怪的事情。我正在这样启动我的客户:

java -Djavax.net.ssl.trustStore=<PATHSTUFF>/client.keystore -classpath <STUFF> Client

(注意:未指定密码)

上述通话有效。

但是,当我尝试这样做:

java -classpath <STUFF> Client

这是行不通的。(显然,它不起作用,它需要信任库)。

我原本需要通过此选项(但我没有):

-Djavax.net.ssl.trustStorePassword=mypass

问题 :访问密码存储区是否不需要密码?密码仅供修改吗?密钥库又如何呢?


问题答案:

密码用于保护密钥库的完整性。如果您不提供任何商店密码,您仍然可以阅读密钥库的内容。该命令keytool -list演示了此行为(将其与空密码一起使用)。



 类似资料:
  • 我已经在网上搜索了这个问题,并找到了许多线程,给出了一个接近我一直遭受的问题的解决方案。 我收到一个访问限制错误,如下所述:访问限制:由于对所需库/opt/java/jdk1.8.0_31/jre/lib/rt.jar的限制,无法访问类型JFrame 在我的代码中,JFrame和JPanel下面有红线 我在这些线程中执行了所需的操作,但问题是尚未解决的访问限制:由于对所需库JDK1.6.0\jre

  • 问题内容: 我正在尝试使用以下设置来创建与MYSQL服务器的ssl连接。我注意到,当我在jdbc URL中指定verifyServerCertificate = false时,Java似乎会忽略通过System.setProperty指定的密钥库和信任库信息。因此,我可以注释掉1)中指定的代码,并且ssl连接仍将成功创建。当我指定verifyServerCertificate = true时,似乎

  • 问题内容: 假设我有这个课程: 一个线程可以在不访问该对象的情况下写入这些字段,而另一个线程可以读取它们吗? 注意:这些值可以彼此分开对待,因此在读取时更改没关系。 编辑 : 为了澄清起见,这些字段是 可变的 。只有它们引用的对象是 不可变的 。 问题答案: 从技术上讲,你需要让他们,或读取 和 使用写出来,以保证读者会读的最先进的最新值。正如您现在所拥有的,如果一个线程写入一个值,则不能保证另一

  • 问题内容: 假设我有这个课程: 一个线程可以在不访问该对象的情况下写入这些字段,而另一个线程可以读取它们吗? 注意:这些值可以彼此分开对待,因此在读取时更改没关系。 编辑 : 为了澄清起见,这些字段是 可变的 。只有它们引用的对象是 不可变的 。 问题答案: 从技术上讲,你需要让他们,或读取 和 使用写出来,以保证读者会读的最先进的最新值。正如您现在所拥有的,如果一个线程写入一个值,则不能保证另一

  • 问题内容: 以下代码: 是/是打开JDBC连接所必需的。 我听说现代JDBC驱动程序不再需要它。但是我无法在项目中将其删除,因为我遇到了异常。我正在使用Java7和tomcat7。 什么时候可以省略构建? 问题答案: 从JDBC 4.0开始,不需要Class.forName()。 这是JDBC的Java教程的摘录。 在 早期 版本的JDBC中,要获得连接,首先必须通过调用方法Class.forNa

  • 问题内容: 我的计划是将一些现有的Redis密钥存储在散列中,稍后再从Redis Lua脚本中获取并采取行动。我读到,最好的做法是提供调用时脚本中使用的所有键。 我的问题是,运行在运行时没有提供任何键,而是对从脚本 内部 获取的某些键进行操作的脚本是否安全?如果没有,后果是什么,如何避免这一缺点? 我提到在的时候,无法知道特定哈希中的键是什么。我可以在步骤之前的某个步骤中从哈希中获取所有键,然后将