通常用的证书格式为 cer 证书格式,
使用openSSL生成证书步骤:
1.使用以下命令生成私钥与签名证书文件,并根据提示输入对应的证书属性包括国家,区域,域名等:
openssl req -new -newkey rsa:2048 -nodes -keyout www.test.com.key -out www.test.com.csr
其中 rsa:2048 为生成的证书的长度,www.test.com.key 为申请生成的私钥文件,www.test.com.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 365 -in www.test.com.csr -signkey www.test.com.key -out www.test.com.crt
x509的含义: 指定格式
-days 365 : 证书的有效期为 365 天
-signkey的含义: 自签名
3. 将上一步生成的 server.crt 导入到指定的 jks 文件中
keytool -import -trustcacerts -alias testServer -file server.crt -keystore testServer.jks
-trustcacerts -alias testServer : 信任证书并定义别名
4. 查看 jks 的证书
keytool -v -list -keystore testServer.jks
查看 jks 中的证书信息