Keystore概念,Keytool工具使用 博客分类: Java JDKSecurity
近来由于项目需要做Single Sign On, 研究了一下CAS (具体配置等下篇再介绍), 而这个CAS 的配置最关键的不是CAS 本身,而是数字证书,如何配置多台服务器之间的信任链接。因此,有必要把keystore, keytool 的东西翻出来晒晒。
几个概念
keystore
是 一个密码保护的文件,用来存储密钥和证书(也就是说,keystore
中存储的有两类型entries
);这个文件(默认的)位于你的home
目录,也就 是你登录到操作系统的用户名的那个目录。或者通过-keystore
参数设为你指定的位置。需要说明的是:如果不通过-keystore
来指定位置,将使
用home
目录中的默认keystore
文件。smilingleo
原创
通过-alias 来检索keystore 中的具体内容(keystore 中可能存有多个entry )
如果想查看keystore 中每个entry 的详细信息,比如谁签发的,用-v 参数(verbose ),里面你还可以看到默认的有效期。
系统签署的证书其有效期默认为一年,通过-validity 来设定其具体的天数。
重要 :JDK\jre \lib\security 目录下面有一个cacerts 的文件,就是一个keystore ,其默认密码是changeit 。如果一个App Server 想建立一个安全的链接到另外一个Server, 需要通过一个受信的数字证书,而这个证书就需要存储在cacerts 中。
keytool
用来import, export, list keystore
中内容的工具,还可以用来以测试为目的,生成自己签署的证书。
了解了上面的概念之后,你操作起来就比较容易,比如我们想从一个keystore
(文件存在home
目录的.keystore
文件)中删除某个entry
, 其alias
是tomcat5
,那么keytool
命令就是:
keytool -keystore .keystore -delete -alias tomcat5
是不是很自然?
理解:签署
服务器上产生一个证书之后,用这个证书签署Applet
等,以表明这个applet
确实是来源于这个服务器,而不是其他,以实现其真实性,如果你信任服务器,那么你就可以信任这个applet
。
比如你可以通过jarsigner 工具,用keystore 中的某个key entry 来签署一个jar 文件。
推荐阅读
-
Keystore概念,Keytool工具使用 博客分类: Java JDKSecurity
-
java: SQLite使用实例 博客分类: 7.数据库 javadbsqlitesqlite管理工具
-
linux环境java CPU使用率分析工具 博客分类: 环境
-
KeyTool 工具生成X.509证书 博客分类: java基础证书 java脚本keytool证书X.509
-
intellij idea 2015、2016破解方法 博客分类: idea工具的使用JAVA idea
-
Windows 7 sometimes breaks FTP connections on Java 7 if firewall is enabled 博客分类: idea工具的使用JAVA idea
-
idea中dependencies中总是有红色波浪线(缺少dependency)的解决办法 博客分类: java的开源框架idea工具的使用 idea
-
IntelliJ Idea 常用快捷键列表 博客分类: idea工具的使用JAVA idea