证书格式有哪些,区别以及如何⽣成证书
本⽂为博主原创,未经允许不得转载:
⼀般来说,主流的Web服务软件,通常都基于OpenSSL和Java两种基础密码库。
Tomcat、Weblogic、JBoss等Web服务软件,⼀般使⽤Java提供的密码库。通过Java Development Kit (JDK)⼯具包中的Keytool⼯具,⽣成Java Keystore(JKS)格式的证书⽂件。
Apache、Nginx等Web服务软件,⼀般使⽤OpenSSL⼯具提供的密码库,⽣成PEM、KEY、CRT等格式的证书⽂件。
证书格式:
.DER或.CER⽂件:这样的证书⽂件是⼆进制格式,只含有证书信息,不包含私钥。
*.CRT⽂件:这样的证书⽂件可以是⼆进制格式,也可以是⽂本格式,⼀般均为⽂本格式,功能与.DER及.CER证书⽂件相同。
*.PEM⽂件:这样的证书⽂件⼀般是⽂本格式,可以存放证书或私钥,或者两者都包含。.PEM ⽂件如果只包含私钥,⼀般⽤.KEY⽂件代替。
.PFX或.P12⽂件:这样的证书⽂件是⼆进制格式,同时包含证书和私钥,且⼀般有密码保护。
使⽤openSSL⽣成证书及证书导⼊到jks,⽣成p12证书导⼊到 jks操作步骤如下:
1. 使⽤ OpenSSL ⽣成私钥与签名证书⽂件,并根据提⽰输⼊对应的证书属性包括国家,区域,域名等;
2. ⽣成 cer 的证书⽂件:根据第⼀步⽣成的私钥与签名⽂件⽣成⼀个cer⽂件;
3. 将上⼀步⽣成的 导⼊到指定的 jks ⽂件中;
4. 查看导⼊ jks 的证书;
5. 将 1 和2 ⽣成的⽂件导⼊到 p12⽂件中;
6. 将⽣成的P12⽂件导⼊到jks中;
7. 重新查看jks中的证书配置;
1.使⽤以下命令⽣成私钥与签名证书⽂件,并根据提⽰输⼊对应的证书属性包括国家,区域,域名等:
openssl req -new -newkey rsa:2048-nodes -st.st.csr
其中 rsa:2048 为⽣成的证书的长度,st.key 为申请⽣成的私钥⽂件,st.csr 为申请⽣成的证书签名请求⽂件。
CSR是Certificate Signing Request的英⽂缩写,即证书签名请求⽂件,是证书申请者在申请数字证书时由CSP(加密服务提供者)在⽣成私钥的同时也⽣成证书请求⽂件,
证书申请者只要把CSR⽂件提交给证书颁发机构后,证书颁发机构使⽤其根证书私钥签名就⽣成了证书公钥⽂件,也就是颁发给⽤户的证书。
CSR是以-----BEGIN CERTIFICATE REQUEST-----开头,-----END CERTIFICATE REQUEST-----为结尾的base64格式的编码。将其保存为⽂本⽂件,就是所谓的CSR⽂件。
有CSR必定有KEY,是成对的,CSR最终变成为证书,和私钥key配对使⽤。 Key是以-----BEGIN RSA PRIVATE KEY-----开头的,-----END RSA PRIVATE KEY-----结尾的。
Key必须保存好。证书下发后,CSR⽆需使⽤,仅提交时候需要。
2.⽣成 cer 的证书⽂件:根据第⼀步⽣成的私钥与签名⽂件⽣成⼀个cer⽂件
openssl x509 -req -days st.csr -st.st.crt
x509的含义: 指定格式
-days 365 : 证书的有效期为 365 天
-signkey的含义: ⾃签名
3. 将上⼀步⽣成的 导⼊到指定的 jks ⽂件中
keytool -import -trustcacerts -alias testServer - -keystore testServer.jks
-trustcacerts -alias testServer :信任证书并定义别名
nginx和apache区别 4. 查看导⼊ jks 的证书
keytool -v -list -keystore testServer.jks
查看 jks 中的证书信息
5.将 1 和2 ⽣成的⽂件导⼊到 p12⽂件中:
openssl pkcs12 -export - -st.key-out mycert.p12 -name abc -
⽣成过程输⼊的密码就是keypass
name就是别名
6. 将⽣成的P12⽂件导⼊到jks中:
keytool -importkeystore -v -srckeystore mycert.p12 -srcstoretype pkcs12 -srcstorepass a123456 -destkeystore Aserver.keystore -deststoretype jks -deststorepass b123456 deststorepass就是新⽣成的storepass
7. 重新查看jks中的证书配置:
keytool -v -list -keystore Aserver.keystore
执⾏如图:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论