CSR和P10請求文件


綜述

CSR(Certificate Signing Request)

證書簽發請求申請或者叫做認證申請,是一個發送到CA的請求認證信息。有兩種格式,應用最廣泛的是由PKCS#10定義的,另一個用的少的是由SPKAC定義的,主要應用於網景瀏覽器。

PKCS#10

CSR有兩種編碼格式:二進制(ASN.1或DER(Distinguished Encoding Rules))和文本格式(the text or PEM (Privacy Enhanced Mail)對DER進行Base64編碼生成PEM格式

ASN.1和DER的關系為

DER:唯一編碼規則(Distinguished Encoding Rules),是符合 ASN.1 語法的編碼規則之一。BER: 標准的ASN.1編碼規則有基本編碼規則(BER,Basic Encoding Rules),CER: 規范編碼規則(CER,Canonical Encoding Rules)、DER: 唯一編碼規則(DER,Distinguished Encoding Rules)、PER: 壓縮編碼規則(PER,Packed Encoding Rules)和XML編碼規則(XER,XML Encoding Rules)

二進制(ASN.1或DER)<------Base64編碼解碼--->文本(PEM)

CSR文件包含的信息描述如下:

CertificationRequest ::= SEQUENCE {
        certificationRequestInfo CertificationRequestInfo,  
        signatureAlgorithm AlgorithmIdentifier{{ SignatureAlgorithms }},
        signature          BIT STRING
  }

包含兩個部分:證書請求信息部分、簽名部分(算法和簽名)。

證書請求信息

version、Distinguished Name、public key、Attributes(屬性集),另外還可能有可選的字段,如postal address和Email address,這兩個字段可以應用於證書的撤銷。

簽名:簽名算法和數字簽名(private key簽名)

注意:私鑰不包含在CSR文件中,但是應用於數字簽名。

請求信息定義如下

CertificationRequestInfo ::= SEQUENCE {
        version       INTEGER { v1(0) } (v1,...),
        subject       Name,
        subjectPKInfo SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
        attributes    [0] Attributes{{ CRIAttributes }}
   }

CSR文件生成步驟

1)  根據Version、Distinguished Name、Public Key、Attributes生成請求證書;

2)   用Private Key加密證書請求信息;

3)  根據請求信息、簽名算法和簽名生成CSR文件;

持有者具體為:

1)Common Name (CN)域名/名稱,如CN表示中國

2)Organization (O)單位名稱,如XISU表示西安外國語大學

3)Locality (L)城市,如XiAn表示西安

4)State (ST)省份/直轄市,如ShanXi表示陝西

5)Country (C)國家,如CN表示中國

其持有者名稱就為:CN = CN, O = XISU, L = XiAn, ST= ShanXi,C=CN

CSR Detailed Information(證書簽名請求詳細信息)
    Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject:
            commonName                = CN
            organizationName          = SUST
            localityName              = XiAn
            stateOrProvinceName       = ShanXi
            countryName               = CN
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (2048 bit)
                Modulus (2048 bit):
                    00:d6:2d:e5:bc:f0:87:80:21:ad:e7:db:74:7d:f6:
                    2f:3b:e1:f8:74:8d:eb:5f:f9:24:ec:18:f8:24:7c:
                    65:c6:27:ef:ad:72:52:86:93:73:09:13:48:a3:0f:
                    83:cd:6b:11:97:50:23:54:2e:09:f6:44:ec:b2:6e:
                    6e:6c:4e:61:b3:a4:43:83:fb:50:00:03:25:7e:a4:
                    b4:28:14:d9:07:10:5b:ae:74:6a:95:33:a5:e4:3d:
                    67:ea:68:cd:af:2a:f7:73:51:b3:cf:0b:45:ff:31:
                    f0:c5:18:fc:5c:f0:06:37:4d:43:37:f3:97:3d:73:
                    df:d6:38:81:7a:35:47:00:bc:01:48:40:5d:33:1b:
                    b7:af:cc:96:41:a8:36:f8:7a:75:27:6a:d3:12:2c:
                    79:b1:45:63:22:d4:97:87:b5:f2:c8:35:78:4d:8a:
                    d1:de:c0:44:16:80:80:77:8f:5c:66:87:b0:8f:3b:
                    91:5e:4d:be:87:cd:00:f1:73:e7:fb:b8:c8:ac:63:
                    ab:3d:27:f3:e1:dc:67:8e:09:e2:03:a2:8a:94:f2:
                    39:df:57:97:86:13:32:0c:1f:90:85:31:98:da:8e:
                    b3:4a:17:80:d8:2b:76:11:c9:42:34:2b:ae:be:bf:
                    42:88:2e:85:27:b4:4b:3e:f8:cd:b4:2e:13:a7:f9:
                    51:3d
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption
        51:61:3b:a0:15:f7:48:b8:d8:34:ce:77:6e:c0:4e:94:d1:a7:
        b2:00:29:d4:fd:5f:88:23:e9:10:a6:99:18:43:94:27:6c:4e:
        82:e2:07:4a:ed:4d:d5:98:a0:2a:95:a6:88:00:19:c6:ea:1a:
        81:6d:51:fc:03:4c:de:35:e9:bc:22:d5:05:1b:f8:d0:01:c2:
        16:ca:2d:f6:e7:6b:74:26:23:23:8d:da:0c:70:1a:62:f2:e6:
        4f:8f:cf:be:99:ed:72:7d:3f:ef:e8:3f:fd:e9:40:1e:1a:fd:
        50:8a:28:31:9c:30:c2:8e:b2:a2:6e:bb:27:07:f0:fd:b7:bf:
        83:b3:1a:7b:b9:8f:1d:9d:a5:b1:04:d2:d3:68:44:7a:a5:72:
        9c:84:64:d9:6f:66:79:05:0b:ae:df:bf:6a:da:20:d2:6a:89:
        48:1c:74:5a:cc:2d:1e:58:93:73:e9:d7:16:94:2b:c0:52:04:
        cd:5b:8f:18:23:95:c3:b2:e6:09:f3:66:1c:d0:a4:65:5b:91:
        48:90:7f:f4:c7:4b:9a:b7:f0:72:13:c8:dc:d7:93:19:27:be:
        05:97:ec:3a:da:6d:db:fe:e3:f9:ba:9e:60:a1:6e:f0:1d:2c:
        b4:ba:09:04:49:e2:87:15:28:57:5f:2e:64:e9:8e:7a:e5:6e:
        5f:53:7a:9c

證書請求文件,類似於CSR文件,P10證書一般是一個base64文件,實際上他不是一張真正的證書,應該是一段可以向CA申請證書的P10請求,該請求一般是通過硬件生成密鑰對后,將私鑰單獨存放,但是將公鑰放入P10中,CA受到該P10請求后,可以校驗,並根據P10中的信息制作一張沒有私鑰的公鑰證書。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM