文章来源
https://jingyan.baidu.com/article/6079ad0eb284ad28ff86db18.html
验证命令如下:
> 生成证书文件:
keytool -genkey -alias server_cert -keypass 12345678 -keyalg RSA -keysize 1024 -validity 365
-keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore -storepass 87654321
> 查看证书详情:
keytool -list -v -keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore
-storepass 87654321
> keystore文件生成cer文件:
keytool -export -alias server_cert
-keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore
-file C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\tomcat_server.cer
> 打印证书信息:
keytool -list -rfc -keystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore
-storepass 87654321
> 提取公钥(证书):
将上一步(打印证书信息)中公钥信息复制到server.txt中保存后,将server.txt文件重新命名为:server.cer文件即可。
> 提取私钥
keytool -v -importkeystore
-srckeystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.keystore
-srcstoretype jks -srcstorepass 87654321
-destkeystore C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.pfx
-deststoretype pkcs12 -deststorepass 876543210 -destkeypass 12345678
其中原密钥口令为:12345678
openssl pkcs12 -in C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.pfx -nocerts -nodes
-out C:\Users\xxxx\Desktop\jarsigner\self-signed-certificate\server.key
其中Enter Import Password:876543210
证书生成如下:
所谓的自签名证书就是利用第三方工具生成的不受CA机构认可的证书,它是用户自己颁发给自己的,但是它和正式已经发布的证书功能是一样的,都可以用来作签名。本文就主要介绍如何利用JDK工具keytool来生成自签名证书,方便平时进行https功能开发及测试,为申请正式证书作准备。
前提:
- JDK 1.8
- Windwos 7
第一步:
打开资源管理器,进入到证书生成目录,本例的目录为C:\yc\8.others\cert
在资源管理器空白处按住SHIFT键同时右击鼠标,在弹出的快捷菜单中选择【在此处打开命令行窗口】
第二步:
在cmd窗口中输入java -version,如果出现如下提示则说明JDK已经安装,否则请先安装JDK。
第三步:
在cmd中输入keytool可以看到一些常用参数的含义,为了方便阅读,我贴出了一张白色背景的图片。
alias指定生成密钥对的别名
keyalg指定生成密钥的算法
validity指定证书的有效期,单位为天
keystore指定密钥库的存储路径
storepass指定密钥库的密码
第四步
理解了参数的含义后执行如下命令
keytool -genkey -alias server_cert -keypass 12345678 -keyalg RSA -keysize 1024
-validity 365 -keystore C:\yc\8.others\cert\server.keystore -storepass 87654321
命令执行后系统会提示输入名字与姓氏、单位与组织等,这些都将会记录到证书中。按照指示录入完成后就可以看到生成的证书文件了。
第五步
输入命令keytool -list -v -keystore server.keystore -storepass 87654321
,可以查看证书文件的详情。
注意到server_cert为【步骤4】中指定的别名。
第六步
执行命令
keytool -export -alias server_cert -keystore server.keystore -file tomcat_server.cer
此时会提示输入密钥库密码,本例为【步骤4】中设置的87654321,输入后回车便可生成tomcat_server.cer文件,双击此文件就可以看到证书的详细信息。