知识记录:证书格式转换&openssl生成秘钥命令

本文纯记录,已做备用(大脑很昂贵,好记性不如烂笔头)

openssl默认使用的是PEM格式,经过base64。

生成pem格式的私钥: 
openssl genrsa -out private_key.pem 2048

生成公钥: 
openssl rsa -in private_key.pem -pubout -out public_key.pem

某些语言需要pkcs8格式的公钥。 (php就不需要了) 
使用openssl将刚才生成的公钥转为pkcs#8格式: 
openssl pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM -nocrypt -out private_key_pkcs8.pem

 

——————————————————————————————————————————————

SSL通信中用到的证书生成流程和常见格式转换命令:

1、生成服务器端证书(下发)
keytool -genkey -keyalg RSA -dname "cn=localhost,ou=sango,o=none,l=china,st=beijing,c=cn" -alias server -keypass password -keystore server.jks -storepass password -validity 3650


2、生成客户端证书
keytool -genkey -keyalg RSA -dname "CN=*.abc.com,OU=运营部,O=网络科技有限公司,L=杭州,S=浙江,C=CN" -alias abc -storetype PKCS12 -keypass abc123 -keystore cn.abc.p12 -storepass abc123 -validity 3650
客户端的CN可以是任意值。 

3、由于是双向SSL认证,服务器必须要信任客户端证书,因此,必须把客户端证书添加为服务器的信任认证。由于不能直接将PKCS12格式的证书库导入,我们必须先把客户端证书导出为一个单独的CER文件,使用如下命令,先把客户端证书导出为一个单独的cer文件:

keytool -export -alias abc -file cn.abc.cer -keystore cn.abc.p12 -storepass abc123 -storetype PKCS12 -rfc
然后,添加客户端证书到服务器中(将已签名数字证书导入密钥库)

keytool -import -v -alias abc -file cn.abc.cer -keystore abc.com.jks -storepass abc123456

3.1添加der证书到服务器授信列表
keytool -import -file cn.abc.der -keystore abc.com.jks -storepass abc123456

4、查看证书内容
keytool -list -v -keystore server.jks -storepass password


5.删除alias命令
keytool -delete -alias abc(指定需删除的别名) -keystore abc.com.jks -storepass Hundse.jce.provider.BouncyCastleProvider 

6.生成android端bks文件
keytool -genkey -alias abc1 -keypass abc123456  -keyalg RSA -keysize 1024 -validity 365 -keystore abc.com.jks -storepass abc123456 -dname "CN=*.abc.com,OU=运营部,O=网络科技有限公司,L=杭州,S=浙江,C=CN" -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider 

或是: 
keytool -import -alias abc1 -file cn.abc.cer -keystore abc.bks - 
storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

-------------

crt文件生成p12文件

openssl pkcs12  -export -clcerts -in client.crt -inkey  client.key -out client.p12


JKS与P12证书互转

::JKS → P12
keytool -importkeystore -srckeystore abc.com.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore abc.com.p12  -alias abc
 
::P12 → JKS
keytool -importkeystore -srckeystore keystore.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore keystore.jks

::P12 → PEM
openssl pkcs12 -in keystore.p12 -out keystore.pem -nodes
openssl pkcs12 -export -out keystore1.p12 -in keystore.pem

 

::crt → cer

执行下面语句 // openssl x509 -in 证书名.crt -out 转换成cer的证书名.cer -outform der 

openssl x509 -in ca.crt -out server.cer -outform der


查看jks证书内容:
keytool -list -v -keystore abc.com.jks

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值