⑴ 如何从KeyStore中获取证书链
这个文件的路径用右划线,keystoreFile="C:\ProgramFiles\Java\jdk1.6.0_02\jre\lib\security\server.keystore"
⑵ 使用keystore生成的证书怎么查看
在命令窗口中输入命令:keytool -list -v -keystore android.keystore
(根据上一篇讲的,此时我已经将签名证书复制到了当前项目文件下,所以命令路径即为临时文件android.keystore的路径)
修改keystore的密码,别名等
1:修改密码的命令:keytool -storepasswd -keystore android.keystore
其中,my.keystore是复制出来的签名证书文件,命令执行后会提示证书的当前密码和新密码及其确认。
2:修改别名alias的命令:keytool -changealias -keystore android.keystore -alias my_name -destalias androiddebugkey
这里,my_name是证书中当前的alias,-destalias指定的是要修改为的alias,例如我将别名改为如下:
⑶ 如何将可以keystore证书导入到jre
keytool -importcert -file my.cer -keystore mykeystore.jks -alias mycert
获得帮助:
keytool -importcert -help
⑷ keystore怎么生成证书和密钥
步骤:
1.生成server端密钥
[html] view plain
1. keytool -genkey -alias serverkey -keystore key OfServer.keystore
之后会出现如下信息,(第一次输入密码:打开keystore文件密码,第二次密码为秘钥,一般两次密码相同)
根据私钥导出服务端证书(将把证书库 monitor.keystore中的别名为 serverkey的证书导出到KeyOfServer.cer证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。)
[html] view plain
1. keytool -export -alias serverkey -keystore keyOfServer.keystore -file server.crt
将服务端证书,加入客户端的认证证书列表中(只包含公钥)
[html] view plain
1.keytool -import -alias serverkey -file server.crt -keystore trustOfClient.keystore
2:生成client端密钥
[html] view plain
1. keytool -genkey -alias clientkey -keystore keyOfClient.keystore <span style="font-size: 18px; font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
根据私钥导出客户端证书
[html] view plain
1. keytool -export -alias clientkey -keystore keyOfClient.keystore -file client.crt
将证书加到服务端信任列表
[html] view plain
1. keytool -import -alias serverkey -file client.crt -keystore trustOfServer.keystore
至此,客户端和服务器端的证书都已经生成了
⑸ Tomcat下生成keystore证书后,怎么使用,我url+https 还是无法访问,还需要什么步骤么
这个文件的路径用右划线, keystoreFile="C:\Program Files\Java\jdk1.6.0_02\jre\lib\security\server.keystore"
⑹ 如何用已有的证书文件和私钥文件生成keystore
首先不能使用java的类库.除非你使用了JNI但是与其这样,不如直接使用JAVA第二访问https可以使用OpenSSL,keystore文件中的证书只是个密钥.提取出来后完全可以用一般的SSL方式进行post或者get连接代码互联网上有的是
⑺ 如何用已有的证书文件和私钥文件生成keystore-CSDN论坛
(1)公私钥
使用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");
= 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);
⑻ 如何导入.cer证书到Java keystore
Der/Cer证书导入来:
要从某个文源件中导入某个证书,使用keytool工具的-import命令:
keytool -import -file mycert.der -keystore mykeystore.jks
如果在 -keystore 选项中指定了一个并不存在的密钥仓库,则该密钥仓库将被创建。
如果不指定 -keystore 选项,则缺省密钥仓库将是宿主目录中名为 .keystore 的文件。如果该文件并不存在,则它将被创建。
⑼ 如何从keystore文件中取出证书和密钥
看不懂需求,是说export吗? http://blog.csdn.net/guo_rui22/article/details/3947716
⑽ 做javaweb项目时要把http改为https,有的说直接用keystore生成证书,有的说要买CA证书,到底哪个是正确的
你这个项目 要是自己电脑上测试就不需要,但是你要是想在放在服务器上并且用浏览器访问那就必须购买证书,然后安装配置证书