https和http主要区别就是前者加入了ssl协议,也就是一种将信息加密解密的协议,简称公钥和私钥,公钥加密,因为可流传,公之于众对安全性无损,故名公钥;私钥解密,因为不可流传,只能由一个人掌握,故名私钥;
非对称加密算法:又称双钥加密,包括公钥和私钥。公钥/私钥一一对应,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。公钥可以解开私钥加密的信息,反之亦成立;
但是公钥私钥是用的非对称加密,安全性高,但是加密解密很慢,因此若回话的每次传输都使用非对称加密,效率会极低
因此,此时便想到利用对称加密来传输回话消息,而建立回话连接的时候使用非对称加密来加密对称加密
即:客户端公钥加密会话秘钥发送给服务器,服务器私钥解密得到会话秘钥;利用对称加密和非对称加密来保证安全性和性能都可接受!
CA:证书授权中心( certificate authority)。 它呢,类似于国家出入境管理处一样,给别人颁发护照;也类似于国家工商管理局一样,给公司企业颁发营业执照。
它有两大主要性质:
利用p12文件可以生成公钥和私钥:
openssl pkcs12 -in file.p12 -clcerts -out public_key.pem
openssl pkcs12 -in file.p12 -nodes -out private_key.pem(如果nodes不行就改成clcerts)
OpenSSL命令—pkcs12详解:https://blog.csdn.net/as3luyuan123/article/details/16105475
证书格式转换:
1\ cer to pem
openssl x509 -in BMJ.cer -outform PEM -out BMJ.pem
2\ pfx to pem
#openssl pkcs12 -in /root/snn_code/pfx_code/base64190606010101.pfx -clcerts -nokeys -out /root/snn_code/pfx_code/base64190606010101.crt
#openssl x509 -in base64190606010101.crt -outform PEM -out base64190606010101.pem
3\ pfx to key
#gmssl pkcs12 -info -in base64190606010101.pfx -nocerts -nodes -out base64190606010101.key
数字证书中存储的一般是某个服务器的域名和公钥,服务器证书需要导入到客户端的JRE中,我将刚才生成的cjTomcat.cer这个证书视为服务器相关的信息。现在我要将条目名为cjTomcat的数字证书导入到我本地的JRE受信任的证书库中,导入命令是:
keytool -import -alias "cjTomcat" -keystore C:\Java\jdk1.8.0_40\jre\lib\security\cacerts -file D:\keystore\cjTomcat.cer -trustcacerts -storepass changeit
说明:changeit是cacerts这个证书库的默认口令,因为我们需要操作cacerts这个证书库文件,所以需要输入该证书库的密码,C:\Java\jdk1.8.0_40\jre需要替换为你自己的JRE目录
回车之后,会询问是否信任cjTomcat.cer中存储的证书,输入“y"回车。
上面命令中的参数不一一解释,很多都很直观,简单说明一下-alias指定条目名称,-keyalg "RSA"指定加密算法用RSA,-keystor指定秘钥库文件,如果目录有空格,那么请使用双引号。-validity 365指定有效期是365天。秘钥库的后缀名可以用任意名称,或者干脆不要后缀名也是可以的。
出自:https://blog.csdn.net/yjaspire/article/details/82858084
出自:https://blog.csdn.net/pucao_cug/article/details/70136159?utm_source=copy
出自:https://blog.csdn.net/hxf123456789/article/details/80281827
keytool命令详解官网:https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html
进入cmd控制台,cd 进入.p12证书的文件夹,然后运行以下命令:
//将p12导入至keystore
keytool -v -importkeystore -srckeystore temp.p12 -srcstoretype PKCS12 -destkeystore temp.keystore -deststoretype JKS
只是这样貌似:keystore的密码是你设置的,alias和alias的密码是原来p12的密码。
//查看keystore
keytool -v -list -keystore temp.keystore
签名(1-证书链别名)
jarsigner -verbose -keystore d:\key.keystore -signedjar d:\signed.apk d:\tap_unsign.apk 1
删除keystore中别名为help.com的证书链
keytool -delete -alias help.com -keystore key.keystore