背景: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