一.keytool的概念
keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。在JDK 1.4以后的版本中都包含了这一工具,它的位置为%JAVA_HOME%\bin\keytool.exe,如下图所示:
二.keytool的用法
三.创建证书
创建证书主要是使用" -genkeypair",该命令的可用参数如下:
范例:生成一个名称为test1的证书
keytool -genkeypair -alias "test1" -keyalg "RSA" -keystore "test.keystore"
功能:
创建一个别名为test1的证书,该证书存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。
参数说明:
-genkeypair:生成一对非对称密钥;
-alias:指定密钥对的别名,该别名是公开的;
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件
注意:
1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等
2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填
执行完上述命令后,在操作系统的用户目录下生成了一个"test.keystore"的文件,如下图所示:
四.查看密钥库里面的证书
范例:查看test.keystore这个密钥库里面的所有证书
keytool -list -keystore test.keystore
五.导出到证书文件
范例:将名为test.keystore的证书库中别名为test1的证书条目导出到证书文件test.crt中
keytool -export -alias test1 -file test.crt -keystore test.keystore
运行结果:在操作系统的用户目录(gacl)下生成了一个"test.crt"的文件,如下图所示:
六.导入证书
范例:将证书文件test.crt导入到名为test_cacerts的证书库中
keytool -import -keystore test_cacerts -file test.crt
如导入证书报“keytool error: java.lang.Exception: Input not an X.509 certificate”异常,可用文本编辑器打开查看,如是乱码,则应该是“DER 编码二进制 X.509(.CER)(D)”证书,如是字母数字,则应该是"Base64 编码 X.509(.CER)(D)”证书。
在这我用文本编辑器打开报“keytool error: java.lang.Exception: Input not an X.509 certificate”异常的证书,是乱码的,应该是“DER 编码二进制 X.509(.CER)(D)”证书,于是再通过双击打开导出"Base64 编码 X.509(.CER)(D)”文件格式的证书,具体步骤如下:
单选"Base64 编码 X.509(.CER)(D)”格式
点“完成”弹出导出成功提示框即OK,用文本编辑器打开导出的证书,可以看到不是乱码的(由字母和数字组成)。
再用keytool -export -alias test1 -file test.cer -keystore test.keystore导入证书,不报“keytool error: java.lang.Exception: Input not an X.509 certificate”异常。
七.查看证书信息
范例:查看证书文件test.crt的信息
keytool -printcert -file "test.crt"
八.删除密钥库中的条目
范例:删除密钥库test.keystore中别名为test1的证书条目
keytool -delete -keystore test.keystore -alias test1
九.修改证书条目的口令
范例:将密钥库test.keystore中别名为test2的证书条目的密码修改为xdp123456
keytool -keypasswd -alias test2 -keystore test.keystore
十.实战命令
1.生成私钥
keytool -genkey -alias aliasName -keyalg RSA -keysize 1024 -keypass 112233 -validity 1095 -keystore test1.ks -storepass 123456
2.根据生成的私钥导出公钥
keytool -export -alias aliasName -keystore test1.ks -file test1.cer -storepass 123456
3.查看证书
keytool -printcert -file /data/test1.cer
4.导入公钥证书
keytool -import -file /data/test1.cer -keystore cacerts -alias server
5.查看密钥库里面的证书
a.查看所有证书
keytool -list -keystore cacerts
b.查看别名是server的证书
keytool -list -keystore cacerts | grep server
c.根据证书的内容查看证书
keytool -list -keystore cacerts | grep D0:DB:9A:68:FE:AE:2B:EE:84:8B:5B:D0:AD:D5:83:DA:D4:31:A1:6F
Windows下:
keytool -list -keystore D:\software\Java\jdk1.7.0_51\jre\lib\security\cacerts 或者 keytool -list -keystore D:\software\Java\jdk1.7.0_51\jre\lib\security\cacerts | findstr /i server 或者 keytool -list -keystore D:\software\Java\jdk1.7.0_51\jre\lib\security\cacerts | findstr /i entrust
输入密钥库口令: changeit
entrustevca, 2010-4-24, trustedCertEntry, entrustrootcag2, 2010-6-23, trustedCertEntry, entrust2048ca, 2010-6-23, trustedCertEntry, entrustsslca, 2003-1-9, trustedCertEntry,
6.删除密钥库中的条目
keytool -delete -keystore cacerts equifaxsecureca
相关推荐
以下是关于`keytool`证书制作工具的详细知识: 1. **基本概念** - **密钥对**:密钥对由一对非对称密钥组成,包括一个公钥和一个私钥。公钥用于加密,私钥用于解密。 - **数字证书**:包含公钥及其拥有者信息的...
1. **使用Keytool**:Java SDK自带的Keytool工具是制作签名证书的常用方法。通过命令行输入`keytool -genkeypair -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity ...
在Android平台上,应用程序的发布和分发需要经过签名这一关键步骤。...通过理解这些工具的工作原理和使用方法,开发者可以更好地控制自己的应用程序生命周期,确保其在Android生态系统中的安全分发。
接下来,使用`keytool`工具生成密钥对及证书请求文件,再使用OpenSSL工具将之前生成的CA根证书对证书请求进行签名。 **生成密钥对**: ```bash keytool -genkey -alias example -validity 3650 -keyalg RSA -keysize...
5. 使用Keytool和Jarsigner这两个Java工具生成和签名证书。 6. 证书与应用的包名无关,不同的应用可以使用相同的证书签名。 7. 系统不允许签名证书不同的应用覆盖安装同一包名的应用。 对于APICloud平台的开发者,...
SignApkV2是一款专用于Android系统的签名工具,它在ROM开发和应用发布过程中起着至关重要的作用。在Android平台上,所有的APK...因此,理解并熟练掌握SignApkV2的使用方法对于任何Android开发者或ROM制作者都至关重要。
数字签名的制作涉及生成密钥对、设置有效期以及使用`JARSigner`工具对JAR文件进行签名。这个过程对于确保Java应用程序的安全性和可靠性至关重要,特别是在涉及到用户隐私和系统资源访问时。正确理解和使用这些步骤,...
- **工具**: `keytool`,这是一个Java自带的工具,用于管理证书和密钥库。 - **操作步骤**: - 在命令行中使用以下命令生成密钥库文件: ```bash keytool -genkey -keystore mytest.store -alias mbq -validity ...
签名过程涉及到生成私钥和证书,然后使用keytool和jarsigner工具对APK进行签名。 5. 最后,使用zipalign工具对APK进行对齐优化,提高应用的运行效率。zipalign工具也是Android SDK的一部分,可以通过以下命令使用:...