-
jks是java keystore的简称,是java的数字证书库,查看证书私钥需要密码,避免私钥一名文的形式出现在代码中
-
客户端签名,服务器验签,确定是否是自己人
1.使用keytool生成jks,keytool工具在java->jdk->bin目录下,使用命令行,ps:红色部分请自行替换
keytool -genkey -alias 别名 -keyalg RSA -keystore 文件名.jks
2.经过一番复杂的输入,生成的jks文件在桌面->我的文档根目录下,这个jks里包含了自动生成的私钥
keytool -export -alias 别名 -keystore 文件名.jks -storepass 密码 -file 文件名.cer
3.用私钥对数据签名,这里只贴核心代码,用时自行补全KeyStore ks = KeyStore.getInstance("JKS"); fis = new FileInputStream("路径\\文件名.jks"); String storePassword = "上面生成jks时的密码"; String storeAlias = "上面生成jks时的别名"; ks.load(fis, storePassword.toCharArray()); PrivateKey prikey = (PrivateKey) ks.getKey(storeAlias,storePassword.toCharArray());7 String priKeyStr = Base64.getEncoder().encodeToString(prikey.getEncoded());//查看私钥用8 System.out.println("私钥:"+priKeyStr);//查看私钥9 //用私钥签名
4.服务器用cer文件读取公钥,对客户端传输数据进行验签
查看cer里面的公钥串
在sss.cer文件位置打开命令行工具,然后输入一下语句,回车即可查看此cer的公钥串
keytool -printcert -rfc -file sss.cer