java和go中的密码学(7)-.csr,.cert,.cer,.crt,.key常见文件格式后缀

标签:密码学
发布时间:2018年10月09日 价值:20000.00 / 共识:22

文件名后缀的作用

我们知道,文件的后缀,代表着本文件的格式,不过这个格式只是一个方便我们人类自己直观快速一眼就识别而已,和文件内部真正的格式完全没有关系的(这意味着,平时我们将一个.exe格式文件改成.txt文件也一样没有任何问题的!!不过我相信大部分人不会这样坑死自己~~)。可是,当我们用程序读入这个文件时,在内存中解码时,则需要提前知道文件的真正格式才可以顺利解码!

繁杂多样的后缀

在密码学领域,或者说在数字证书方面,我们经常会见到.der, .pem, .csr, .cert, .cer, .crt, .key这类后缀的文件。不了解的话,乍一看真的会比较懵的。

.der:DER编码的ASN.1规范文件(见上节讲解),常用于X.509规范的数字证书。

.pem:PEM编码的ASN.1规范文件(见上节讲解),常用于X.509规范的数字证书。

.crt:CRT是certificate的三个字母,其实还是证书的意思,常见于各种unix/linux系统,有可能是PEM编码,也有可能是DER编码,大多数应该是PEM编码,相信你已经知道怎么辨别.

.cer:还是certificate,还是证书,常见于Windows系统,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.(见上节讲解

.cert:还是certificate,还是证书,同样的,可能是PEM编码,也可能是DER编码,大多数应该是DER编码.

.key:通常用来存放一个公钥或者私钥,并非X.509证书。编码可能是PEM,也可能是DER.

.csrCertificate Signing Request, 即证书签名请求,这个并不是证书, 而是向权威证书颁发机构获得签名证书的申请, 其核心内容是一个公钥(当然还附带了一些别的信息), 在生成这个申请的时候, 同时也会生成一个私钥,私钥要自己保管好.做过iOS APP的朋友都应该知道是怎么向苹果申请开发者证书的吧.(后续章节会有详细演示)
PFX/P12 : predecessor of PKCS#12, 对unix/linux服务器来说, 一般CRT和KEY是分开存放在不同文件中的,但Windows的IIS则将它们存在一个PFX文件中, 因此这个文件包含了证书及私钥.PFX通常会有一个”提取密码”, 你想把里面的东西读取出来的话,它就要求你提供提取密码。
生成pfx的命令类似这样:

  1. openssl pkcs12 -export -in certificate.crt -inkey privateKey.key -out certificate.pfx -certfile CACert.crt

其中CACert.crt是CA(权威证书颁发机构)的根证书,有的话也通过-certfile参数一起带进去.这么看来,PFX其实是个证书密钥库.

JKS: 即Java Key Storage, 这是Java的专利, 跟OpenSSL关系不大, 利用Java的一个叫”keytool”的工具, 可以将PFX转为JKS, 当然了, keytool也能直接生成JKS.(后续章节会有详细演示)

  • 分享 收藏
0 条评论
  • 这篇文章暂无评论,赶紧评论一下吧~