java生成RSA密钥步骤

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011390452/article/details/79349877

使用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密钥库不存在则创建。
    参数说明:
解释一下几个参数的含义
-genkey:创建证书
-alias:证书的别名。在一个证书库文件中,别名是唯一用来区分多个证书的标识符,该别名是公开的
-keyalg:密钥的算法,非对称加密的话就是RSA
-keystore:证书库文件保存的位置和文件名。如果路径写错的话,会出现报错信息。如果在路径下,证书库文件不存在,那么就会创建一个
-keysize:密钥长度,一般都是1024

-validity:证书的有效期,单位是天。比如36500的话,就是100年


注意:
1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等,此密码为秘钥库的密码,不是秘钥的密码,如上图所示,这是两个密码
    2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填
    执行完上述命令后,在操作系统的用户目录下生成了一个"test.keystore"的文件,如下图所示()


查看密钥库里面的证书

范例:查看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配置

猜你喜欢

转载自blog.csdn.net/u011390452/article/details/79349877