数字证书详解

数字证书

数字证书(digital certificate),又叫做公钥证书(public key certificate)或者身份证书(identity certificate),是一种证明公钥拥有者的电子文档,数字证书内容包括公钥、公钥拥有者的身份识别信息(一般称作 subject)和验证本证书内容的发行实体(一般称作发行者 issuer)的数字签名。

证书格式

数字证书的格式普遍采用的是 X.509 V3 国际标准,一个标准的 X.509 数字证书包含以下一些内容:

  • 证书的版本信息
  • 证书的序列号,每个证书都有一个唯一的证书序列号
  • 证书所使用的签名算法
  • 证书的发行机构名称,命名规则一般采用X.500格式
  • 证书的有效期,通用的证书一般采用UTC时间格式,它的计时范围为1950-2049
  • 证书所有人的名称 (Subject),命名规则一般采用X.500格式
  • 证书所有人的公钥
  • 证书发行者 (Issuer) 对证书的签名

X.509 定义了数字证书格式的标准,详情请参见维基百科词条 ,通过 Openssl 命令行 openssl x509 -in certificate.crt -text -noout 工具可以查看证书格式。

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            52:04:3b:ed:ec:16:86:25:ba:0e:10:01:83:70:42:fd
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=CN, O=TrustAsia Technologies, Inc., OU=Symantec Trust Network, OU=Domain Validated SSL, CN=TrustAsia DV SSL CA - G5
        Validity
            Not Before: Sep 28 00:00:00 2017 GMT
            Not After : Sep 28 23:59:59 2018 GMT
        Subject: CN=home.freemanke.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:bf:a8:30:1b:ea:95:b4:6a:b8:ed:b8:2b:f2:b5:
                    85:9d:a2:0d:1f:14:d4:71:26:d0:f5:66:37:3e:1a:
                    b1:a8:20:a1:2b:ea:99:79:d9:8e:ba:0e:1b:6b:b5:
                    d8:c9:46:4b:5e:63:7e:78:dd:d4:75:4c:9c:2f:03:
                    6f:62:1e:bd:4f:86:8f:c4:6a:aa:f1:20:28:70:c5:
                    bf:b9:b6:37:15:d7:a5:f3:1c:d5:63:06:d6:aa:64:
                    b1:ca:0e:ca:2f:f1:79:2a:da:3d:a8:7e:9b:82:a9:
                    73:9c:b3:3e:cc:df:ac:9d:a4:e6:cb:47:c1:dc:3e:
                    f6:74:e7:e4:43:30:e4:12:4d:7d:56:05:a5:45:80:
                    6c:b5:69:ba:4b:0b:37:ac:5c:85:73:17:a8:ba:a1:
                    1b:32:21:84:59:88:31:53:1a:25:90:a5:77:b2:07:
                    b4:0e:57:c6:46:38:36:25:7f:16:61:e6:0e:78:11:
                    7c:6f:c5:39:bd:13:02:5e:9e:e6:7a:ec:c5:b3:80:
                    b0:43:cf:7f:05:70:33:3b:1b:4d:4d:5d:78:8a:73:
                    e2:a1:f1:f9:78:97:08:ba:2a:69:8d:ae:19:f8:ab:
                    fc:11:9d:fa:26:93:f1:e4:6d:7c:70:f8:58:e7:e2:
                    d4:0f:36:5d:6c:19:e0:07:c7:bd:a5:74:28:c2:1a:
                    7a:75
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Alternative Name:
                DNS:home.freemanke.com
            X509v3 Basic Constraints:
                CA:FALSE
            X509v3 Certificate Policies:
                Policy: 2.23.140.1.2.1
                  CPS: https://d.symcb.com/cps
                  User Notice:
                    Explicit Text: https://d.symcb.com/rpa

            X509v3 Authority Key Identifier:
                keyid:6D:58:C7:7F:1A:E7:E1:3F:2E:A6:8C:97:35:42:BB:F4:D3:38:AC:3F

            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            Authority Information Access:
                OCSP - URI:http://trustasia2-ocsp.digitalcertvalidation.com
                CA Issuers - URI:http://trustasia2-aia.digitalcertvalidation.com/trustasiag5.crt

            1.3.6.1.4.1.11129.2.4.2:
...~...\. ....)6.K...c........SWw...=...x&.u.......X......gp
.....^..]......F0D. s.....r.]..]x[...H.
MUD...G...... ).h}......c..}d*..[d..`....?.7).
    Signature Algorithm: sha256WithRSAEncryption
         b4:b8:9a:25:b5:a2:0f:fc:1e:84:73:b7:8d:da:5c:53:18:57:
         c0:54:f8:82:67:d9:23:c9:ae:f9:8b:cb:1c:af:76:e7:08:9c:
         19:a2:50:98:31:41:cf:c0:e3:57:f8:92:05:db:d9:e3:d3:23:
         83:e3:20:b9:69:73:1c:14:11:2f:b6:ab:97:7a:a7:48:e6:30:
         0a:cc:a0:d5:99:c4:2c:79:f7:4a:97:0e:6d:18:c4:e0:39:1a:
         fe:a4:c6:0e:ce:bb:49:75:fd:3f:6c:8e:7a:c3:bc:47:1a:2d:
         da:a6:d4:1c:2f:fc:25:91:cc:c4:06:e9:ab:19:3b:3b:1f:27:
         0a:4b:33:73:64:1e:86:9f:b8:d9:a2:b1:b1:d2:08:93:55:41:
         df:2d:1e:e5:7d:3b:83:3f:ac:c5:05:6a:5e:f9:35:d9:aa:7d:
         31:2a:df:95:85:65:44:c3:a9:7e:49:b3:da:06:0c:50:5a:52:
         80:36:9d:85:dc:43:e9:94:d4:cc:e7:56:d9:7b:c9:14:b5:94:
         cd:00:87:09:97:ef:6c:35:fb:34:84:e4:d9:66:bd:3a:29:10:
         3b:d6:b4:97:95:b9:64:21:fb:87:d2:1e:72:b4:4c:0e:92:aa:
         48:36:98:5f:00:92:60:78:ef:cd:49:8d:70:5e:49:12:d1:dd:
         86:e1:9c:be

证书存储格式

  • DER 二进制存储格式


    DER格式证书
  • PEM 二进制存储格式的 Base64 编码格式


    PEM格式证书

证书文件扩展名

证书扩展名现在基本上都在混用,所以扩展名并不能唯一确认证书的存储格式,只有根据文件内容来确定它是二进制存储还是 Base64 编码格式存储。

.key 一般用于存储 Base64 格式编码的私钥
.pem .cer .crt (Privacy-enhance Electronic Mail) DER 二进制格式的 Base64 编码,并在编码头尾加上起始行 -----BEGIN CERTIFICATE----- 和结束行 -----END CERTIFICATE-----
.der .cer .crt DER 二进制格式证书编码,不可读,不方便证书的传递和交换
.p12 一般包含了证书和对称加密后的私钥
.pfx 是p12的前身

如何从 .pfx 文件中导出公钥和私钥

openssl pkcs12 -in certificate.pfx  -nocerts -out private.pem
openssl pkcs12 -in certificate.pfx -clcerts -nokeys -out public.pem

如何使用公钥加密私钥解密

echo Hello > file.txt
openssl rsautl -encrypt -inkey public.pem -pubin -in file.txt -out file.encrypted.txt
openssl rsautl -decrypt -inkey private.pem -in file.encrypted.txt -out file.decrypted.txt

如何使用私钥签名公钥验签

考虑一个问题,为什么没有用私钥加密公钥解密的场景?因为公钥是公开发布的,如果要用一个公开发布的秘钥来解密,这个场景就不是加解密,而是数字签名。

数字签名过程

  • A 首先对消息使用 HASH 算法得到消息摘要
  • A 使用私钥对消息摘要进行加密(为什么不直接对消息或文件进行加密而是对其摘要进行加密?因为非对称加密效率不高,非常耗时)。
  • A 将消息和加密后的摘要(签名)发给接收方 B
  • 接收方用 B 使用 A 的公钥对签名进行解密得到一个 摘要,然后用同样的 HASH 算法得到消息的摘要,对这两个摘要比对,如果完全相同,则说明消息是 A 发送的,没有被篡改。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容