.keystore文件转成pkcs1.pem文件记录

发布于:2025-03-07 ⋅ 阅读:(12) ⋅ 点赞:(0)

背景:java的密钥解析跟C#的有些区别,C#需要使用pksc1文件

## 下载openssl 1.1.1版本地址
https://kb.firedaemon.com/support/solutions/articles/4000121705-openssl-binary-distributions-for-microsoft-windows#Download-OpenSSL
zip包需要手动配置环境变量
	1、执行命令:(cd "下载openssl 1.1.1的地址"),我的是"C:\Users\ghc\Downloads\openssl-1.1.1w\openssl-1.1"
	2、执行命令:"dir /b",存在如下文件,如果有x86和x64的话,需要那个用那个
		LICENSE
		version.txt
		x86
		x64
		ssl
	我这里x64的,为了省事就把x64下的文件放到跟bin目录一个级别下了,然后吧x64和x86删掉,就变成了如下这样
		LICENSE
		version.txt
		bin
		include
		lib
		ssl
	3、配置环境变量
		set OPENSSL_HOME=C:\OpenSSL
		set OPENSSL_CONF=%OPENSSL_HOME%\ssl\openssl.cnf
		set PATH=%OPENSSL_HOME%\bin;%PATH%
		cd /d %OPENSSL_HOME%
	4、查看版本
		openssl version -a

 开始转换

1.查看.keystore文件内容

keytool -list -v -keystore C:\Users\ghc\Desktop\文件名.keystore

2.从JKS转换到PKCS12,生成后在C盘的用户目录下 

keytool -importkeystore -srckeystore C:\Users\ghc\Desktop\文件名.keystore -destkeystore keystore_old.p12 -srcstoretype JKS -deststoretype PKCS12 -srcstorepass 123456 -deststorepass 123456 -srcalias 2022040102 -destalias 2022040102 -srckeypass 123456 -destkeypass 123456 -noprompt

这里的123456是密钥密码,2022040102是别名

3.从PKCS12转换成PEM格式

openssl pkcs12 -in keystore_old.p12 -out keystore_old.pem -passin pass:123456 -passout pass:123456

4. pkcs8转pkcs1,显示 BEGIN RAS 开头的就可以了 

openssl rsa -in keystore_old.pem -out pkcs1.pem

可能会用到的命令

## 取出私钥
用记事本打开PEM格式文件,从PEM格式的 certificate chain 中取出私钥,保存为 privateKey.key
## 生成私钥
openssl rsa -in privateKey.key -check 私钥将被显示在命令行界面上

## 从私钥中提取公钥
openssl rsa -in pkcs1.pem -pubout -out public.pem