openssl制作CA、密钥对

创建自签名CA

cd openssl
mkdir ca
cd ca

1、生成ca私钥
openssl dsaparam -out dsaparam 1024

openssl gendsa -out dsakey dsaparam
2、生成ca待签名证书
openssl req -new -out ca-req.csr -key dsakey -config ..\openssl.cnf
3、用CA私钥进行自签名,得到自签名的CA根证书
openssl x509 -req -in ca-req.csr -out ca-cert.cer -signkey dsakey -days 365

4、查看证书信息

openssl x509 -noout -text -in ca-cert.cer

ca-cert.cer  根证书
ca-req.csr
dsakey
dsaparam

生成客户端证书

cd openssl
mkdir client
cd client

1、生成私钥
  openssl genrsa -out chinabank.key 1024
2、生成证书
  openssl req -new -key chinabank.key -out chinabank.csr -config ..\openssl.cnf
3、CA签名
  openssl x509 -req -in chinabank.csr -out chinabank.crt -CA ..\ca\ca-cert.cer -CAkey ..\ca\dsakey -CAcreateserial -days 3650

  或

  openssl x509 -req -in chinabank.csr -out chinabank.cer -CA ..\ca\ca-cert.cer -CAkey ..\ca\dsakey -CAcreateserial -days 3650
4. 转换成pfx格式
  openssl pkcs12 -export -clcerts -in chinabank.crt -inkey chinabank.key -out chinabank.pfx

  chinabank.key 私钥
  chinabank.csr
  chinabank.crt 证书同chinabank.cer
  chinabank.pfx 密钥对 微软的
  chinabank.jks 密钥对 JAVA的keytools证书
      chinabank.pem 密钥对

5、使用之前生成的CA证书进行验证生成证书

openssl verify -CAfile ..\ca\ca-cert.cer chinabank.crt

6、查看KEY信息
 openssl rsa -noout -text -in chinabank.key
7、查看CSR信息
 openssl req -noout -text -in chinabank.csr
8、 查看证书信息
 openssl x509 -noout -text -in chinabank.crt

注意:无法直接校验key与证书、csr与证书的匹配,但网上可在线验证

证书转化

1、PFX转X509 PEM
openssl pkcs12 -in chinabank.pfx -nodes -out chinabank.pem
2、PEM中获取私钥
openssl rsa -in chinabank.pem -out chinabank.key
3、PEM中获取公钥
openssl x509 -in chinabank.pem -out chinabank.crt
4、将公钥与私钥生成密钥对
openssl pkcs12 -export -inkey chinabank.key -in chinabank.crt -out chinabank.pfx

注意:合并生成的PFX与原来的PFX不是完全相同的,但是可以正常使用

 JDK中转化

1、将pfx转化为jks(其实是将pfx导入到jkd中而生成的jks就是jdk的keystore)
keytool -importkeystore -srckeystore chinabank.pfx -destkeystore chinabank.jks -srcstoretype PKCS12 -deststoretype JKS
2、将jks转化为pfx
keytool -importkeystore -srckeystore chinabank.jks -destkeystore chinabankjdk.pfx -srcstoretype JKS  -deststoretype PKCS12
3、从keystore中获取jks密钥库中的证书信息:
keytool -list -v -keystore server.jks

4、从keystore删除证书
keytool -delete  -keystore chinabank.jks

5、查看证书
keytool -printcert -v -file chinabank.crt

总结:

生成Root CA私钥与证书:生成RootCA私钥(.key)—> 使用私钥生成CSR —> 生成自签名根证书(ca-cert.cer 用来给二级CA证书签名)。
生成二级CA 私钥与证书: 生成ServerCA私钥 —> 使用私钥生成CSR —> 使用根证书签名生成二级证书(ServerCA证书用来给服务器证书签名)。

posted @ 2015-06-08 23:00  W&L  阅读(585)  评论(0编辑  收藏  举报