java生成 *.crt和*.key文件与*.keystore *.jks文件的转换

Posted hongshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java生成 *.crt和*.key文件与*.keystore *.jks文件的转换相关的知识,希望对你有一定的参考价值。

 

证书格式

名称

含义

.pem

Privacy Enhanced Mail的缩写,一般是文本格式,可保存证书,可保存私钥,证书或密钥的Base64文本存储格式,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾

.cer|.crt

文件是二进制格式,只保存证书,不保存私钥,.cer常见于Windows系统, crt常见于Linux系统,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.

PFX/P12

 predecessor of PKCS#12,对Unix服务器来说,一般CRT和KEY是分开存放在不同文件中的,但Windows的IIS则将它们存在一个PFX文件中

JKS

即Java Key Storage,这是Java的专利,跟OpenSSL关系不大,利用Java的一个叫”keytool”的工具,可以将PFX转为JKS,当然了,keytool也能直接生成JKS

*.csr证书签名请求,包含证书持有人的信息,如国家,域名等
*.key单独存储的.pem格式的密钥,一般保存为*.key
pkcs1/pkcs12公钥加密(非对称加密)的一种标准,一般存储为*.p12等包含证书和密钥的封装格式

 

  1. 证书的格式是可以相互的转换的,openssl先生成私钥,然后再生成证书签名请求,最后通过私钥和证书请求生成公钥。

openssl req -newkey rsa:2048 -nodes -out hongshu.csr -keyout hongshu_com.key

      执行命令后,会生成hongshu.csr/hongshu_com.key文件

     2.创建公钥

openssl x509 -req -days 365 -in hongshu.csr -signkey hongshu_com.key -out hongshu_com.crt

    3.将*.key和*.crt转换为keystore文件

       3.1 先生成p12文件

openssl pkcs12 -export -in hongshu_com.crt -inkey hongshu_com.key -out hongshu_com.p12

       3.2 再生成keystore文件(jks格式是keysotre标准格式,java key store的缩写)

keytool -importkeystore -v -srckeystore hongshu_com.p12 -srcstoretype pkcs12 -destkeystore hongshu_com.jks -deststoretype jks

 

以上是关于java生成 *.crt和*.key文件与*.keystore *.jks文件的转换的主要内容,如果未能解决你的问题,请参考以下文章

如何在openssl生成的java中使用.key和.crt文件?

apache的证书文件-crt,pem,key,p7b ...我迷路了

openssl生成csr文件,将crt和key文件转换成tomcat下的jks文件

linux下生成https的crt和key证书

linux下生成https的crt和key证书

创建ssl.key和ssl.crt目录