keystore、jks、p12、pfx、cer、crt、csr、pem、key、p8
格式:.keystore或 .jks(Java Keystore) 是Java密钥库系统的默认格式。
内容: 私钥、公钥证书,以及可能的其他证书链
用途: 主要用于Java应用程序的安全配置,如Web服务器的身份验证。
示例命令:
keytool -genkey -alias myalias -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.keystore
keytool -genkey -alias myalias -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.jks
格式: PKCS#12是一种跨平台的标准格式。
内容: 私钥、证书和证据链。
用途: 用户多种环境,不仅限于Java,还可以用于.NET应用、IOS应用等。
示例命令:
keytool -importkeystore -srckeystore my.keystore -srcalias www.my.org -destkeystore my.p12 -deststoretype pkcs12
格式: 通常用于存储X.509格式的公钥证书。
内容: 只包含DER格式、PEM格式的公钥证书。
用途: 用于安装到Web服务器上,以便向客户端证明服务器的身份。
示例命令:
keytool -exportcert -keystore xxx.keysotre -alias xxx -file xxx.crt
openssl x509 -in cert.pem -outform PEM -out cert.crt
格式: CSR(Certificate Signing Request) 是一个证书签名请求文件。
内容: 公钥和一些标识信息,用于向证书颁发机构申请证书。
用途: 用于向证书颁发机构提交证书申请。
示例命令:
keytool -certreq -alias xxx -keystore xxx.keystore -file xxx.csr
openssl req -new -key key.pem -out xxx.csr
格式: PEM(Privacy Enhanced Mail) 是一种通用的ASCII编码的密钥和证书格式。
内容: 公钥、私钥、证书,通常用于OpenSSL中。
用途: 广泛用于各种安全协议和应用程序中,包括SSL/TLS
示例命令:
openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout key.pem
查看证书信息: openssl x509 -in xxx.der -inform der -text -noout
格式: 通常是以PEM(Privacy Enhanced Mail) 格式存储的二进制数据。
内容: 私钥,通常用于OpenSSL中。
用途: 用于建立加密连接,如HTTPS、SFTP等。
示例命令:
openssl genpkey -algorithm RSA -out xxx.key
查看证书: openssl rsa -in xxx.key -text -noout