使用jdk自带的证书制作工具keytool生成秘钥对
一:keytool的概念
keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务。
在JDK 1.4以后的版本中都包含了这一工具,它的位置%JAVA_HOME%\bin\keytool.exe,如下图所示
二:keytool的用法
三:创建证书
创建证书主要是使用" -genkeypair",该命令的可用参数如下
keytool -genkey -alias 你的证书别名 -keyalg 密钥算法 -keystore 证书库文件保存的位置和文件名 -keysize 密钥长度 -validity 证书有效期天数
示例Cmd命令:keytool -genkey -alias testalias -keyalg RSA -keystore e:/software/ssl/test.keystore -keysize 1024 -validity 36500
功能:
创建一个别名为test1的证书,该证书存放在名为test.keystore的密钥库中,若test.keystore密钥库不存在则创建。-validity:证书的有效期,单位是天。比如36500的话,就是100年
注意:
四:查看密钥库里面的证书
范例:查看test.keystore这个密钥库里面的所有证书
Cmd命令:keytool -list -keystore e:/software/ssl/test.keystore
五:导出到证书文件
范例:将名为test.keystore的证书库中别名为test1的证书条目导出到证书文件test.crt中
Cmd命令:keytool -export -alias testalias -file e:/software/ssl/test.crt -keystore e:/software/ssl/test.keystore
解释一下:
-export:用于导出公钥文件的命令参数
-alias:你的证书在证书库中的别名,也是唯一标识
-keystore:完整的证书库文件所在的目录及文件名
-file:导出后的公钥文件所在的完整目录及文件名
keytool仍然会要求你输入证书库的密码,注意是”证书库“的密码
运行结果:在操作系统的用户目录(gacl)下生成了一个"ktminjured.crt"的文件,如下图所示
六:导入证书
范例:将证书文件test.crt导入到名为test_cacerts的证书库中
Cmd命令:keytool -import -keystore injured_cacerts -file e:/software/ssl/test.crt
七:查看证书信息
范例:查看证书文件test.crt的信息
keytool -printcert -file e:/software/ssl/test.crt
也可以双击test.crt证书文件打开,可导出cre文件,在nginx的https配置中会用到
在证书的详细信息中可以将证书导出成其他格式,点击【复制到文件】,下一步,然后选择要导出的格式然后下一步生成即可。
八:删除密钥库中的条目
范例:删除密钥库test.keystore中别名为testalias的证书条目
keytool -delete -keystore e:/software/ssl/test.keystore -alias testalias
九:修改证书条目的口令
范例:将密钥库test.keystore中别名为testalias的证书条目的密码修改为123456
keytool -keypasswd -alias testalias -keystore e:/software/ssl/test.keystore
后续再写一下tomcat和nginx的https配置