数字证书扫盲

近段时间做的项目都涉及到与各种支付渠道对接。由于涉及到接口调用安全,资金安全等,通常都会使用各种格式的数字证书来保证通讯安全,数据不被窃取,以及保证数据的来源合法。但是数字证书中却有很多概念,到底各个概念都是什么含义呢?下来带大家一起来扫盲。

X.509证书

X.509是公钥证书的标准格式,定义了证书中应该包含哪些内容。X.509证书在很多互联网协议里面都有应用,如TLS/SSL。可用在加密通讯、电子签名等场景。证书需要包含公钥、签名信息、身份信息,还可以附带证书合法性验证算法、证书吊销列表等附加信息。

X.509证书的各种后缀名

X.509证书会有很多不同的后缀名,但有些并不是真正意义上的证书,可能只是保存了私钥的文件而已。下面列出常见的后缀名及其含义:

  1. pem,隐私增强型电子邮件(Privacy Enhanced Mail)。是der编码的证书,在用Base64进行编码而存放的。通常以—–BEGIN CERTIFICATE—–开头,以—–END CERTIFICATE—–结束。如DigiCert_Global_Root_CA.pem证书,打开后是这样的:
-----BEGIN CERTIFICATE-----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
  1. der,二进制格式的证书,直接用文本打开的话全是二进制的东西,没有可读性。但是可以通过windows证书打开。如DigiCert_Global_Root_CA.der:
    这里写图片描述
    这里写图片描述
    上面的pem和der两种扩展名其实也是编码格式,像下面将要讲的几种扩展名的证书文件,尽管证书内容会有不同,但他们会采用pem和der这两种编码方式。
  2. cer,cer是certificate的三个字母,可以有pem和der两种编码格式。可以从der中导出。
  3. key,不是X.509证书,通常用于存放公钥或者私钥可以有pem和der两种编码格式。
  4. csr,证书签名请求。这个也不是证书,是向CA请求获取签名的证书。首先会生成一对钥匙对(即公钥和私钥),然后用私钥对csr进行签名,并妥善保管好私钥。这是csr包含了请求发起者的身份信息、可以用于验证签名的公钥等。
  5. pfx和p12,是第12号公钥加密技术标准(PKCS#12)。包含证书和私钥,不过私钥是有密码保护的,只有提供正确的密码后,才能从p12文件中提取出私钥。
  6. JKS,Java KeyStore。java密钥管理库,里面可以放各种密钥文件,与pfx/p12十分类似,用来存放证书和私钥。

常见的证书就列举到这里,相信大家已经有个基本的概念。下面将讲解一下X.509证书结构和证书链,有兴趣的同学可以继续往下看。

X.509的结构

X.509的结构会包括:证书、版本号、序列号、签名算法、颁发者、证书有效期、此日期前无效、此日期后无效、主题、主题公钥信息、公钥算法、主题公钥、颁发者唯一身份信息(可选项)、主题唯一身份信息(可选项)、扩展信息(可选项)、证书签名算法、数字签名。
上面这样列可能不太好理解,下面送上直观脑图一份。注意:黄色高亮部分为可选项。
这里写图片描述

证书链

了解证书链之前,我们了解一下什么是CA。

  • CA就是证书颁发机构(Certificate
    Authority),是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。CA又分为root CA 和 intermediates CA(中间CA)。root CA 和 intermediates CA之间是有链式关系的,root CA之下可以有多个intermediates CA,intermediates CA自己下面也可以有多个intermediates CA。
    这里写图片描述
    我们拿唯品会的证书来看一下,最顶层的是VeriSign(VeriSign 是全球最大的数字证书颁发机构)是Root CA,第二层的是Symantec(赛门铁克),最后才是vip的。
    这里写图片描述
    既然有了链式结构,那么在验证证书的是否真实合法的时候,我们就可以通过证书链,一层层向上回溯,验证证书了。
    这里写图片描述

数字证书的扫盲就讲到这里。其实除了CA认证体系外,还有PGP的Web of Trust体系。关于PGP解密的相关内容,将在日后为大家带来。


作者:皇子

猜你喜欢

转载自blog.csdn.net/vipshop_fin_dev/article/details/80790368