最近做一个及时通讯系统,服务端用Python3 Socket实现,客户端包括Android和桌面版,功能都实现了以后考虑到加密问题.
python3 Socket要用pem证书,Android javawebSocket要用bks证书,WTF!
Android的bks可以由jks转换来,上网查了一下,jks可以转成pem,这就好办了
首先把jks转成pem
一,生成JKS
keytool-genkey -keyalg RSA -keysize 1024 -validity 3650 -dname "CN=spdb, OU=spdb,O=spdb, L=shanghai, ST=shanghai, C=CN" -alias default -keypass 123456 -keystore csii.jks -storepass 123456 要用RSA加密方式,要用RSA加密方式,要用RSA加密方式,重要事情说三遍
二,JKS转pkcs12
keytool -importkeystore -srckeystore csii.jks -destkeystore csii.p12 -srcstoretype jks -deststoretype pkcs12
三,pkcs12转pem
openssl pkcs12 -nodes -in csii.p12 -out csii.pem生成的pem中包含了私钥和证书需要把-----BEGIN CERTIFICATE-----和-----END CERTIFICATE-----部分的内容复制到cert.pem中把-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----部分的内容复制到key.pem中即可.至此JKS转pem完成,接下来要把JKS转成bks四,JKS转cerkeytool -export -alias default -keystore csii.jks -rfc -file csii.cer五,cer转bks 这里需要用到bcprov-jdk15on-155.jar这个jar包,放到一个目录里即可keytool -importcert -v -trustcacerts -file "keystore.cer" -alias defualt -keystore "keystore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk15on-155.jar" -storetype BKS -storepass storepassword123这样就生成了bks