數(shù)字證書詳解

數(shù)字證書

數(shù)字證書(digital certificate)流妻,又叫做公鑰證書(public key certificate)或者身份證書(identity certificate)岂却,是一種證明公鑰擁有者的電子文檔茫死,數(shù)字證書內(nèi)容包括公鑰吮蛹、公鑰擁有者的身份識別信息(一般稱作 subject)和驗證本證書內(nèi)容的發(fā)行實體(一般稱作發(fā)行者 issuer)的數(shù)字簽名算撮。

證書格式

數(shù)字證書的格式普遍采用的是 X.509 V3 國際標(biāo)準(zhǔn)忙灼,一個標(biāo)準(zhǔn)的 X.509 數(shù)字證書包含以下一些內(nèi)容:

  • 證書的版本信息
  • 證書的序列號杭攻,每個證書都有一個唯一的證書序列號
  • 證書所使用的簽名算法
  • 證書的發(fā)行機構(gòu)名稱趟妥,命名規(guī)則一般采用X.500格式
  • 證書的有效期猫态,通用的證書一般采用UTC時間格式,它的計時范圍為1950-2049
  • 證書所有人的名稱 (Subject)披摄,命名規(guī)則一般采用X.500格式
  • 證書所有人的公鑰
  • 證書發(fā)行者 (Issuer) 對證書的簽名

X.509 定義了數(shù)字證書格式的標(biāo)準(zhǔn)亲雪,詳情請參見維基百科詞條 ,通過 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 二進(jìn)制存儲格式


    DER格式證書
  • PEM 二進(jìn)制存儲格式的 Base64 編碼格式


    PEM格式證書

證書文件擴展名

證書擴展名現(xiàn)在基本上都在混用义辕,所以擴展名并不能唯一確認(rèn)證書的存儲格式,只有根據(jù)文件內(nèi)容來確定它是二進(jìn)制存儲還是 Base64 編碼格式存儲寓盗。

.key 一般用于存儲 Base64 格式編碼的私鑰
.pem .cer .crt (Privacy-enhance Electronic Mail) DER 二進(jìn)制格式的 Base64 編碼灌砖,并在編碼頭尾加上起始行 -----BEGIN CERTIFICATE----- 和結(jié)束行 -----END CERTIFICATE-----
.der .cer .crt DER 二進(jìn)制格式證書編碼璧函,不可讀,不方便證書的傳遞和交換
.p12 一般包含了證書和對稱加密后的私鑰
.pfx 是p12的前身

如何從 .pfx 文件中導(dǎo)出公鑰和私鑰

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

如何使用私鑰簽名公鑰驗簽

考慮一個問題基显,為什么沒有用私鑰加密公鑰解密的場景蘸吓?因為公鑰是公開發(fā)布的,如果要用一個公開發(fā)布的秘鑰來解密撩幽,這個場景就不是加解密库继,而是數(shù)字簽名。

數(shù)字簽名過程

  • A 首先對消息使用 HASH 算法得到消息摘要
  • A 使用私鑰對消息摘要進(jìn)行加密(為什么不直接對消息或文件進(jìn)行加密而是對其摘要進(jìn)行加密窜醉?因為非對稱加密效率不高宪萄,非常耗時)。
  • A 將消息和加密后的摘要(簽名)發(fā)給接收方 B
  • 接收方用 B 使用 A 的公鑰對簽名進(jìn)行解密得到一個 摘要酱虎,然后用同樣的 HASH 算法得到消息的摘要雨膨,對這兩個摘要比對,如果完全相同读串,則說明消息是 A 發(fā)送的聊记,沒有被篡改。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恢暖,一起剝皮案震驚了整個濱河市排监,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌杰捂,老刑警劉巖舆床,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嫁佳,居然都是意外死亡挨队,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門蒿往,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盛垦,“玉大人,你說我怎么就攤上這事瓤漏√诤唬” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵蔬充,是天一觀的道長蝶俱。 經(jīng)常有香客問我,道長饥漫,這世上最難降的妖魔是什么榨呆? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮趾浅,結(jié)果婚禮上愕提,老公的妹妹穿的比我還像新娘馒稍。我一直安慰自己皿哨,他們只是感情好浅侨,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著证膨,像睡著了一般如输。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上央勒,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天不见,我揣著相機與錄音,去河邊找鬼崔步。 笑死稳吮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的井濒。 我是一名探鬼主播灶似,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瑞你!你這毒婦竟也來了酪惭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤者甲,失蹤者是張志新(化名)和其女友劉穎春感,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虏缸,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡鲫懒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了刽辙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窥岩。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扫倡,靈堂內(nèi)的尸體忽然破棺而出谦秧,到底是詐尸還是另有隱情,我是刑警寧澤撵溃,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布疚鲤,位于F島的核電站,受9級特大地震影響缘挑,放射性物質(zhì)發(fā)生泄漏集歇。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一语淘、第九天 我趴在偏房一處隱蔽的房頂上張望诲宇。 院中可真熱鬧际歼,春花似錦、人聲如沸姑蓝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纺荧。三九已至旭愧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宙暇,已是汗流浹背输枯。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留占贫,地道東北人桃熄。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像型奥,于是被迫代替她去往敵國和親瞳收。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容