zoukankan      html  css  js  c++  java
  • java keystore

    JAVA有一个keystore用来存放私钥和证书,该文件是伴随JDK默认存在的,路径默认是/lib/security/cacerts,默认密码是changeit,实际上空密码也可以直接访问

    其中cacerts就是上面说的keystore

    我们使用命令keytool -list -rfc -keystore cacerts来列出其中的内容

    -list -rfc 这些参数的意思可以参考下图

    在乐山的时候,我们的代码曾经在测试环境报过一个错误

    我们代码报这个错,是在KeyProvider这个bean实例化的时候,要给密钥容器密码赋值,我们配的是明文12345678,导致解密失败。实际上配置密文就可以了。

    但是为什么配了明文之后,解密失败,最后keystorePassword为空,竟然也能正常工作呢。

    经过查资料和不断实验,我发现无论keystore设置什么密码,都能以空密码进入。也就是说,keystore就是可以在不输入密码的时候访问的。那这个密码的用途是什么呢。

    在不输入密码的时候访问keystore,有一段提示

    *****************  WARNING WARNING WARNING  *****************
    * 存储在您的密钥库中的信息的完整性  *
    * 尚未经过验证!  为了验证其完整性, *
    * 必须提供密钥库口令。                  *
    *****************  WARNING WARNING WARNING  *****************

    可以看出,该密码的作用是为了维护信息的完整性

    具体的工作机制,在stackoverflow中有人做了解答:https://stackoverflow.com/questions/2343691/do-you-not-need-a-password-to-access-a-truststore-made-with-the-java-keytool

  • 相关阅读:
    JVM指令
    spring源码分析之配置文件名占位符的解析(一)
    freemarker
    spring整合freemarker
    策略模式
    spring boot 学习笔记(一)之前端文件配置
    线程使用总结
    maven pom 配置 学习笔记(二)之搭建nexus私服
    删除数据库中所有存在表的数据
    自定义SWT控件七之自定义Shell(可伸缩窗口)
  • 原文地址:https://www.cnblogs.com/heben/p/7651479.html
Copyright © 2011-2022 走看看