问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用已有的证书文件和私钥文件生成keystore-CSDN论坛

发布网友 发布时间:2022-04-24 01:13

我来回答

2个回答

热心网友 时间:2023-05-12 14:37

(1)Openssl公私钥
使用Openssl公钥私钥用于外部商户系统xxx系统间报文安全性验证使用者需要公私钥直接报文进行处理则参考第四部计算摘要及签名值
1. 安装openssl步骤直接点击exe文件现需要安装vs2008插件直接忽略

2. 安装程找OpenSSL相应安装目录进入bin目录找openssl.exe执行文件点击运行别按顺序输入命令:
a. genrsa –out private-rsa.key 1024
说明:该命令没加密私钥
genrsa 私钥文件私钥存储private-rsa.key度1024out面指定输文件名
private-rsa.key 私钥文件该文件必须经处理私钥

b. req –new –x509 –key private-rsa.key –days 750 –outpublic-rsa.cer
说明:根据private-rsa.key证书public-rsa.cer
-new 表示新请求
-509 表示输证书结构
750表示证书效数
-out public-rsa.cer -out面表示公钥证书用于验证数字签名公钥证书或者公钥需要提前发送给需要验证本单位或部门数据接收

c. pkcs12 –export –name test-alias –in public-rsa.cer–inkey private-rsa.key –out 99bill-rsa.pfx
说明:PKCS12 格式Keystore
密码前输入要致密码用Keystore公私钥程用
Public-rsa.cer, private-rsa.key前

附1:
述代码99bill-rsa.pfx获取私钥Java版本代码private-rsa.key私钥直接使用必须进行定处理
代码几注意点:
文件流初始化路径需要根据自实际路径填写
密码第二节c步骤密码本实例输入suning
KeyStorekeyStore = KeyStore.getInstance("PKCS12");
FileInputStreamfileInputStream = newFileInputStream("D:/OpenSSL/bin/99bill-rsa.pfx");
char[]nPassword = "suning".toCharArray();
StringkeyAlias = null;
keyStore.load(fileInputStream,nPassword);
fileInputStream.close();
System.out.println("keystoretype=" + keyStore.getType());
Enumerationenumeration = keyStore.aliases();
if(enumeration.hasMoreElements())
{
keyAlias = (String) enumeration.nextElement();
System.out.println("alias=[" + keyAlias +"]");
}
System.out.println("iskey entry=" + keyStore.isKeyEntry(keyAlias));
PrivateKeyprikey = (PrivateKey) keyStore.getKey(keyAlias, nPassword);
//私钥转字符串
StringprivateStr = Base64.encodeBase64String(prikey.getEncoded()).trim();
//公钥字符串通cer证书
Certificatecert = keyStore.getCertificate(keyAlias);
PublicKeypubkey = cert.getPublicKey();
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
注意:
1. 所用类说明:
Base64:
import org.apache.commons.net.util.Base64;
Certificate:
import java.security.cert.Certificate;
2. openssl公私钥程用户输入密码本例密码suning

1. 摘要及
摘要程(digest全部实现述3程):
1. 根据key传map数据排序;
2. a1=b1&a2=b2&a3=b3形式字符串排除某些字符串Key值;
3. 调用digest进行md5编码;
三步均通Digest.digest()实现:
String digest = Digest.digest(Map map, String... keys);
传递http报文体body内容a1=b1&a2=b2&a3=b3形式字符串提取需要加签字符串并转map形式execludeKes要排除字段字符串数组
计算摘要步关键选取字段要求发送接收必须致即发送哪些字段计算摘要同接收必须相同字段计算摘要否则报6601错误
说明:a. Map存储计算摘要字段
b. keys表示排除字段能用于计算摘要字段signature,signAlgorithm
2. 公钥证书及字符串转换
转换目:便于存储(商户直接提供公钥证书于向验签系统提供公钥字符串商户需要用述代码公钥转字符串)
1. 公钥/私钥字符串转公钥/私钥主要字符串转公钥PublicKey
X509EncodedKeySpec pubKeySpec = newX509EncodedKeySpec(Base64.decodeBase64(strPubKey));
KeyFactorykeyFactory = KeyFactory.getInstance(RSA);
PublicKeypubKey = keyFactory.generatePublic(pubKeySpec);
2. 公钥或私钥转Base64字符串:
StringpublicStr = Base64.encodeBase64String(pubKey.getEncoded()).trim();
3. 公私钥验证
验证目:公私钥需要验证否匹配(前许商户公私钥混乱确定公私钥否匹配添加验签系统)代码由用户自用junit验证运行验证公私钥否确resulttrue则说明公私钥确;否则公私钥问题能使用
String prik1 ="";
String pubb ="";
String data ="wkk";
String digest =Digest.digest(data);
PrivateKey privateKey =RSAUtil.getPrivateKey(prik1);
String sign =RSAUtil.sign(digest, privateKey);
boolean result =RSAUtil.vertiy(digest, sign,
RSAUtil.getPublicKey(pubb));
System.out.println(result);

热心网友 时间:2023-05-12 14:37

Java KeyStore类型

JKSJCEKSJava密钥库(KeyStore)两种比较见类型(我所知道共5种JKS, JCEKS, PKCS12, BKSUBER)
JKSProviderSUN每版本JDK都JCEKSProviderSUNJCE1.4我都能够直接使用
JCEKS安全级别要比JKS强使用ProviderJCEKS(推荐)尤其保护KeyStore私钥(使用TripleDes)
PKCS#12公钥加密标准规定包含所私钥、公钥证书其二进制格式存储称 PFX 文件windows直接导入密钥区注意PKCS#12密钥库保护密码同用于保护Key
BKS
自BouncyCastle
Provider使用TripleDES保护密钥库Key能够防止证书库修改(Keystorekeyentry改掉1
bit都产错误)BKS能够跟JKS互操作读者用KeytoolTryTry
UBER
比较特别密码通命令行提供候能跟keytool交互整keystore通PBE/SHA1/Twofish加密
keystore能够防止误改、察看及校验前Sun
JDK(提供者SUN)允许提供密码情况直接加载Keystore类似cacertsUBER允许种情况

证书导入

Der/Cer证书导入:
要某文件导入某证书使用keytool工具-import命令:

1

keytool
-import -file
mycert.der -keystore mykeystore.jks

-keystore 选项指定并存密钥仓库则该密钥仓库创建
指定 -keystore 选项则缺省密钥仓库宿主目录名 .keystore 文件该文件并存则创建
创建密钥仓库要求输入访问口令需要使用口令访问使用-list命令查看密钥仓库内容:

1

keytool
-list -rfc -keystore mykeystore.jks

P12格式证书导入:
keytool直接导入PKCS12文件
第种使用IEpfx证书导入再导cert格式文件使用面介绍其导入密钥仓库仓库面包含证书信息没私钥内容
第二种pfx文件导入IE浏览器再导pfx文件新pfx能导入keystore报错:keytool错误:java.lang.Exception:
所输入 X.509 认证新pfx文件作keystore使用报错误as
unknown attr1.3.6.1.4.1.311.17.1,查资料,说IE导,使用Netscape错误.
第三种pfx文件作keystore使用通微软证书管理控制台pfx文件能直接使用keytool认格式报keytool错误:java.io.IOException:
failed to decrypt safe contents entry需要通OpenSSL转换:

1

openssl
pkcs12 -in mycerts.pfx -out mycerts.pem

2

openssl
pkcs12 -export -in mycerts.pem -out mykeystore.p12

通keytool-list命令检查密钥仓库内容:

1

keytool
-rfc -list -keystore mykeystore.p12 -storetype pkcs12

需要指明仓库类型pkcs12缺省类型jks密钥仓库即包含证书信息包含私钥信息

P7B格式证书导入:
keytool直接导入p7b文件
需要证书链RootServer.p7b(包含根证书)导根rootca.cerrootcaserver.cer
两证书导入信任密钥仓库

1

keytool
-import -alias
rootca -trustcacerts -file rootca.cer -keystore testkeytrust.jks

遇否信任该证书提示输入y

1

keytool
-import -alias
rootcaserver -trustcacerts -file rootcaserver.cer -keystore testkeytrust.jks

总结

P12格式证书能使用keytool工具导入keystore
The Sun's PKCS12 KeystoreIE其windows程序pfx格式证书支持太.
P7B证书链能直接导入keystore需要面证书导cer格式再别导入keystore
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
swf文件结构 SWF EncryptSWF Encrypt和DoSWF对比 SWF EncryptSWF Encrypt的优点 怎么将swf格式的文件加密 怎样停用前置摄像头 苹果手机视频通话怎么关闭摄像头 ...中登网上查深A账户注销了,沪A账户还没注销? 购买了银行的理财产品,这个钱还可以在银行卡里面查到信息吗_百度... 西安购物广场有哪些 西安有哪些商业广场 摇钱花额度出了,但我不想办了,有影响吗? 婚前买房婚后加名字财产该如何算 哈萨克斯坦牌照是否可以用于外汇监管? 网络电视机需要机顶盒吗? 婚前买房婚后加名字财产怎么算 摇钱花激活额度了之后,钱没有取出来还要还款吗? 合同只有扫描件,外加签合同录音,可以作为证据吗? 婚前买房婚后加名字属于共同财产吗? 香港汇丰银行更换保安编码器签名不一致,内地加签能解决? 香港加签手续怎么办理? 详细说明 国企oa无纸化办公系统是什么意思 摇钱花开通额度后要我不用会怎样? 银行卡加签串不能为空是什么意思? 摇钱花花卡额度还完以后被清零了不销户还会有额度吗? 台胞证加签要什么数据?我是学生,台胞证即将到期,所以我决定去上海出入境管理局加签,请问需要准备哪些资 上海银行摇钱花额度没有激活不会乱扣费吧? C#中RSACryptoServiceProvider可不可以用私钥加密,公钥解密? OA办公系统 流程加签是什么意思 c++rsa加密,php如何解密 别人掌握着个人信息开通摇钱花有风险吗? 无线路由器连接电视机还需网络机顶盒吗 婚前男方首付婚后加女方名字有用吗 报文解密 是否 和安装的openssl 版本有关 摇钱花利息高吗,是什么意思 网络电视还用机顶盒吗 婚前首付婚后加名字还可以的吗 看网络电视必须要网络机顶盒吗 老公婚前首付买的房子,婚后女方一起还房贷,女方有义务要求加上自己的名字吗? 电视机有网络接口 还要买机顶盒吗 婚前买房婚后加名字民法上怎么解释 婚前买房婚后加上对方名字算共同财产吗 婚前首付婚后加名字还贷离婚后怎么分 婚前买房婚后加对方名字怎么算 婚前买房婚后加名字要有法律效力吗 婚前买房婚后加名可以吗 苹果手机下载了百度云如何使用啊? 现实中有无免费的虚拟手机号? 怎么能买到虚拟的手机卡? 如何使用ghost还原恢复电脑系统? 现在有一个人说可以免费领取福利手机,说公司是深圳富士康,是为了提高知名度是真的吗?