https://www.cnblogs.com/librarookie/p/16330406.html
PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Security)所制定,PKCS 目前共发布过 15 个标准。更多公钥加密标准
X.509 是密码学里公钥证书的格式标准。
X.509是常见通用的证书格式。是ITU-T标准化部门基于他们之前的ASN.1定义的一套证书标准。
X.509附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。
X.509证书已应用在包括TLS/SSL在内的众多网络协议里,同时它也用在很多非在线应用场景里。
应用场景如电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。
常用加密标准:
常用扩展名:
.jks
或 .keystore
文件是Java是存储密钥(公钥、私钥)的容器;.truststore
文件是存储自己信任对象公钥的容器;.pem
: 隐私增强型电子邮件(Privacy-enhanced Electronic Mail, pem),通常是Base64格式的文本格式;
.pem
文件可以存放证书或私钥,或者两者都包含。如果只包含私钥,一般用 .key
文件代替。.cer
.crt
.der
: 通常是DER(X.690#DER_encoding)二进制格式的。
.der
或 .cer
文件是二进制格式,只含有证书信息,不包含私钥。.crt
文件是二进制格式或文本格式,一般为文本格式,功能与 .der
及 .cer
证书文件相同。.pfx
或 .p12
文件是二进制格式,同时包含证书和私钥,且一般有密码保护。
.pfx
– PFX,PKCS#12之前的格式(通常用PKCS#12格式,比如由互联网资讯服务产生的PFX文件);.p12
– PKCS#12格式,包含证书的同时可能还包含私钥;.csr
: 数字证书签名请求文件(Cerificate Signing Request).p7r
: 是CA对证书请求的回复,只用于导入。.p7b
: 以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。Tips: 区别证书的不是后缀名,而是证书文件的格式与内容。
对称密钥
与非对称密钥
Tips:
原文链接:https://blog.csdn.net/qq_41586280/article/details/82669840
CERT格式
的文件为PEM的二进制格式,文件扩展名.cert /.cer /.crt。KEY格式
通常用来存放公钥或者私钥,并非X.509证书,编码可能是PEM也有可能是DER,扩展名为 .key。Apache和其他类似服务器使用PEM格式证书。几个PEM证书,甚至私钥,可以包含在一个文件中,一个在另一个文件之下,但是大多数平台(例如Apache)希望证书和私钥位于单独的文件中。
交换公共的和私有的对象
的标准格式。JKS和PKCS12之间的最大区别是JKS是Java专用的格式,而PKCS12是存储加密的私钥和证书的标准化且与语言无关的方式。
OpenSSL是一个非常有用的开源命令行工具包,可用于 X.509 证书,证书签名请求(CSRs)和加密密钥。
查看 PEM证书
openssl x509 -text -noout -in CERTIFICATE.pem
查看 DER证书
openssl x509 -inder der -text -noout -in CERTIFICATE.der
查看 CSR证书
openssl req -text -noout -in mysite.csr
查看 P7B证书
openssl pkcs7 -inform der -in CERTIFICATE.p7b -print_certs -text
查看 JKS证书
keytool -list -rfc -keystore server.jks -storepass XXXXXX
PEM to DER
openssl x509 -outform der -in CERTIFICATE.pem -out CERTIFICATE.der
PEM to P7B
openssl crl2pkcs7 -nocrl -certfile CERTIFICATE.cer -certfile CACert.cer -out CERTIFICATE.p7b
PEM to PFX
openssl pkcs12 -export -out CERTIFICATE.pfx -inkey PRIVATEKEY.key -in CERTIFICATE.cer [-certfile CACert.cer]
openssl pkcs12 -export -out server.p12 -inkey server.key -in server.pem
DER to PEM
openssl x509 -inform der -in CERTIFICATE.cer -out CERTIFICATE.pem
P7B to PEM
openssl pkcs7 -print_certs -in CERTIFICATE.p7b -out CERTIFICATE.cer
P7B to PFX
openssl pkcs7 -print_certs -in CERTIFICATE.p7b -out CERTIFICATE.cer
PFX to PEM
openssl pkcs12 -in CERTIFICATE.pfx -out CERTIFICATE.cer -nodes konwersja poprze OpenSSL
openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem
openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem
(PFX to PEM后CERTIFICATE.cer文件包含认证证书和私钥,需要把它们分开存储才能使用。)
JKS to P12
keytool -importkeystore -srcstoretype JKS -deststoretype PKCS12 -srckeystore server.jks -destkeystore server.p12
P12 to JKS
keytool -importkeystore -srcstoretype PKCS12 -deststoretype JKS -srckeystore server.p12 -destkeystore server.jks
-inform PEM|DER 输入格式 - DER或PEM(x509默认为PEM)
-in infile 输入文件(x509默认为stdin)
-outform PEM|DER 输出格式 - DER或PEM(x509默认为PEM)
-out outfile 输出文件(x509默认为stdout)
-keyform PEM|DER|ENGINE 私钥格式 - 默认PEM
-passin val 私钥密码/口令来源
-modulus 打印RSA密钥模数
-pubkey 输出公钥
-fingerprint 打印证书的指纹
-alias 输出证书别名
-noout 没有输出,只有状态
-nocert 无证书输出
-trustout 输出一个受信任的证书
-setalias val 设置证书别名
-days int 签署的证书到期前的时间 - 默认 30 天
-signkey val 用参数自行签署证书
-x509toreq 输出一个认证请求对象
-req 输入是一个证书请求,签署并输出
-CA infile 设置CA证书,必须是PEM格式
-CAkey val 设置 CA 密钥,必须是 PEM 格式;如果不在 CAfile 中
-text 打印文本形式的证书
-ext val 打印各种X509V3扩展文件
-extfile infile 要添加X509V3扩展的文件
-writerand outfile 将随机数据写到指定文件中
-extensions val 要使用的配置文件中的部分
-nameopt val 各种证书名称选项
-certopt val 各种证书文本选项
-checkhost val 检查证书是否与主机匹配
-checkemail val 检查证书是否与电子邮件匹配
-checkip val 检查证书是否与ipaddr匹配
-CAform PEM|DER CA格式--默认PEM
-CAkeyform PEM|DER|ENGINE CA密钥格式--默认为PEM
-export 输出PKCS12文件
-nodes 不要加密私钥
-nokeys 不输出私钥
-keysig 设置 MS 密钥签名类型
-nocerts 不输出证书
-clcerts 只输出客户证书
-cacerts 只输出CA证书
-info 打印有关PKCS#12结构的信息
-chain 添加证书链
-certpbe val 证书PBE算法(默认为RC2-40)
-inkey val 如果不是infile,则为私钥
-certfile infile 从文件中加载证书
-CApath dir PEM格式的CA的目录
-CAfile infile PEM格式的CA的文件
-no-CAfile 不加载默认的证书文件
-no-CApath 不从默认的证书目录中加载证书
Via