20200826_证书转换
前言:
Windows 当中通常证书所使用的格式是pfx证书,pfx证书通常会附带公钥与私钥.即有Public key Cryptography Standards #12 ,PKCS#12来进行了标准定义,包涵公钥与私钥的二进制证书形式,其结尾通常为pfx 或 p12而cer或者Base64是只包涵二进制编码的证书,且只会包涵公钥。且文件以cer作为结尾
本次使用opessl工具进行将pfx与x509格式的pem证书之间进行相互转换操作
X509(PEM格式的)转PFX格式:
1[root@hz-k8s-harbor-199-152-10 certification]# openssl pkcs12 -name "servyou-it" -export -inkey servyou-it.com.key -in servyou-it.com.pem -out servyou-it.pfx
2Enter Export Password:
3Verifying - Enter Export Password:
4# -name用于配置一个友好名称在Windows当中用于显示,可以随意填写
5# pfx证书为保证安全需要输入密码。此处可以不输入直接敲击回车
6[root@hz-k8s-harbor-199-152-10 certification]# ls
7servyou-it.com.key servyou-it.com.pem servyou-it.pfx
8
9
10#如果 该CA为自签的CA最好在pfx证书上添加上根CA的公钥信息 参数为-CAfile ca.pem
PFX转X509:
1[root@hz-k8s-harbor-199-152-10 tmp]# openssl pkcs12 -in servyou-it.pfx -nodes -out servyou-it-all.pem
2Enter Import Password:
3MAC verified OK
4# 命令当中“-nodes”的作用是:don't encrypt private keys
5# 导出的证书为一张 servou-it-all.pem的全量证书,因此需要对证书进行额外的公钥与私钥分离生成pem格式证书
6# 生成私钥
7[root@hz-k8s-harbor-199-152-10 tmp]# openssl rsa -in servyou-it-all.pem -out servyou-it.key
8writing RSA key
9# 生成公钥
10[root@hz-k8s-harbor-199-152-10 tmp]# openssl x509 -in servyou-it-all.pem -out servyou-it.pem
11
12# 需要注意的是生成后的公钥会与原公钥的格式有略微差别,但其表达的内容与之前完全一致
13[root@hz-k8s-harbor-199-152-10 tmp]# openssl x509 -in servyou-it.pem -noout -text > text1
14[root@hz-k8s-harbor-199-152-10 tmp]# openssl x509 -in ~/certification/servyou-it.com.pem -noout -text > text2
15[root@hz-k8s-harbor-199-152-10 tmp]# diff text1 text2
- 原文作者:Kid
- 原文链接:https://shuanglu.life/post/20200826_%E8%AF%81%E4%B9%A6%E8%BD%AC%E6%8D%A2/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。