<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零全零美(www.zzgwt.com)
    生活中的很多事情,并不像If...Else那么簡單!
    posts - 96,comments - 52,trackbacks - 0
    openssl簡介-指令x509

        用法:
       
        openssl x509 [-inform DER|PEM|NET] [-outform DER|PEM|NET]
       
         [-keyform DER|PEM][-CAform DER|PEM] [-CAkeyform DER|PEM]
       
         [-in filename][-out filename] [-serial] [-hash] [-subject]
       
         [-issuer] [-nameopt option] [-email] [-startdate] [-enddate]
       
         [-purpose] [-dates] [-modulus] [-fingerprint] [-alias]
       
         [-noout] [-trustout] [-clrtrust] [-clrreject] [-addtrust arg]
       
         [-addreject arg] [-setalias arg] [-days arg]
       
         [-signkey filename][-x509toreq] [-req] [-CA filename]
       
         [-CAkey filename] [-CAcreateserial] [-CAserial filename]
       
         [-text] [-C] [-md2|-md5|-sha1|-mdc2] [-clrext]
       
         [-extfile filename] [-extensions section]
       
       
        說明:
        本指令是一個功能很豐富的證書處理工具??梢杂脕盹@示證書的內容,轉換其格式,給CSR簽名等等。由于功能太多,我們按功能分成幾部分來講。

        輸入,輸出等一些一般性的option
        -inform DER|PEM|NET
        指定輸入文件的格式。
        -outform DER|PEM|NET
        指定輸出文件格式
        -in filename
        指定輸入文件名
        -out filename
        指定輸出文件名
        -md2|-md5|-sha1|-mdc2
        指定使用的哈希算法。缺省的是MD5于打印有關的option
        -text
        用文本方式詳細打印出該證書的所有細節。
        -noout
        不打印出請求的編碼版本信息。
        -modulus
        打印出公共密鑰的系數值。沒研究過RSA就別用這個了。
        -serial
        打印出證書的系列號。
        -hash
        把證書的擁有者名稱的哈希值給打印出來。
        -subject
        打印出證書擁有者的名字。
        -issuer
        打印證書頒發者名字。
        -nameopt option
        指定用什么格式打印上倆個option的輸出。
        后面有詳細的介紹。
        -email
        如果有,打印出證書申請者的email地址
        -startdate
        打印證書的起始有效時間
        -enddate
        打印證書的到期時間
        -dates
        把上倆個option都給打印出來
        -fingerprint
        打印DER格式的證書的DER版本信息。
        -C
        用C代碼風格打印結果。
        與證書信任有關的option
        一個可以信任的證書的就是一個普通證書,但有一些附加項指定其可以用于哪些用途和不可以用于哪些用途, 該證書還應該有一個"別名"。
        一般來說驗證一個證書的合法性的時候,相關的證書鏈上至少有一個證書必須是一個可以信任的證書。缺省的認為如果該證書鏈上的Root CA的證書可以信任,那么整條鏈上其他證書都可以用于任何用途。
        以下的幾個option只用來驗證Root CA的證書。CA在頒發證書的時候可以控制該證書的用途,比如頒發可以用于SSL client而不能用于SSL server的證書。
        -trustout
        打印出可以信任的證書。
        -setalias arg
        設置證書別名。比如你可以把一個證書叫"fordesign's certificate", 那么以后就可以使用這個別名來引用這個證書。
        -alias
        打印證書別名。
       -clrtrust
       清除證書附加項里所有有關用途允許的內容。
       -clrreject
       清除證書附加項里所有有關用途禁止的內容。
       -addtrust arg
       添加證書附加項里所有有關用途允許的內容。
       -addreject arg
       添加證書附加項里所有有關用途禁止的內容。
       -purpose
       打印出證書附加項里所有有關用途允許和用途禁止的內容。
       
    與簽名有關的otpion
        本指令可以用來處理CSR和給證書簽名,就象一個CA
        -signkey filename
        使用這個option同時必須提供私有密鑰文件。這樣把輸入的文件變成字簽名的證書。
        如果輸入的文件是一個證書,那么它的頒發者會被set成其擁有者.其他相關的項也會被改成符合自簽名特征的證書項。
        如果輸入的文件是CSR, 那么就生成自簽名文件。
        -clrext
        把證書的擴展項刪除。
        -keyform PEM|DER
        指定使用的私有密鑰文件格式。
        -days arg
        指定證書的有效時間長短。缺省為30天。
        -x509toreq
        把一個證書轉化成CSR.用-signkey指定私有密鑰文件
        -req
        缺省的認為輸入文件是證書文件,set了這個option說明輸入文件是CSR.
        -CA filename
        指定簽名用的CA的證書文件名。
        -CAkey filename
        指定CA私有密鑰文件。如果這個option沒有參數輸入,那么缺省認為私有密鑰在CA證書文件里有。
        -CAserial filename
        指定CA的證書系列號文件。證書系列號文件在前面介紹過,這里不重復了。
        -CAcreateserial filename
        如果沒有CA系列號文件,那么本option將生成一個。
        -extfile filename
        指定包含證書擴展項的文件名。如果沒有,那么生成的證書將沒有任何擴展項。
        -extensions section
       指定文件中包含要增加的擴展項的section
        上面倆個option有點難明白是吧?后面有舉例。
        與名字有關的option.這些option決定證書擁有者/頒發者的打印方式。缺省方式是印在一行中。
        這里有必要解釋一下這個證書擁有者/頒發者是什么回事。它不是我們常識里的一個名字,而是一個結構,包含很多字段。
        英文分別叫subject name/issuer name.下面是一個subject name的例子
        subject=
        countryName = AU
        stateOrProvinceName = Some-State
        localityName = gz
        organizationName = ai ltd
        organizationalUnitName = sw
        commonName = fordesign
        emailAddress = xxx@xxx.xom


    -nameopt
        這個option后面的參數就是決定打印的方式,其參數有以下可選:
        compat
        使用以前版本的格式,等于沒有設置任何以下option
        RFC2253
        使用RFC2253規定的格式。
        oneline
        所有名字打印在一行里面。
       multiline
        名字里的各個字段用多行打印出來。
        上面那幾個是最常用的了,下面的這些我怎么用怎么不對,也許以后研究source在完善這里了。
        esc_2253 esc_ctrl esc_msb use_quote utf8 no_type show_type dump_der
        dump_nostr dump_all dump_unknown sep_comma_plus sep_comma_plus_space
        sep_semi_plus_space sep_multiline dn_rev nofname, sname, lname, oid spc_eq
        舉例時間:
        打印出證書的內容:
        openssl x509 -in cert.pem -noout -text
        打印出證書的系列號
        openssl x509 -in cert.pem -noout -serial
        打印出證書的擁有者名字
        openssl x509 -in cert.pem -noout -subject
        以RFC2253規定的格式打印出證書的擁有者名字
        openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
        在支持UTF8的終端一行過打印出證書的擁有者名字
        openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -escmsb
        打印出證書的MD5特征參數
        openssl x509 -in cert.pem -noout -fingerprint
        打印出證書的SHA特征參數
        openssl x509 -sha1 -in cert.pem -noout -fingerprint
        把PEM格式的證書轉化成DER格式
        openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
        把一個證書轉化成CSR
        openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
        給一個CSR進行處理,頒發字簽名證書,增加CA擴展項
        openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca -signkey key.pem -out cacert.pem
        給一個CSR簽名,增加用戶證書擴展項
        openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr -CA cacert.pem -CAkey key.pem -CAcreateserial
        把某證書轉化成用于SSL client可信任證書, 增加別名alias
        openssl x509 -in cert.pem -addtrust sslclient -alias "Steve's Class 1 CA" -out trust.pem
        上面有很多地方涉及到證書擴展/證書用途,這里解釋一下:
       我們知道一個證書是包含很多內容的,除了基本的那幾個之外,還有很多擴展的項。比如證書用途,其實也只是證書擴展項中的一個。
        我們來看看一個CA證書的內容:
        openssl x509 -in ca.crt -noout -text
        Certificate:
        Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd,
        CN=fordesign/Email=fordeisgn@21cn.com
        Validity
        Not Before: Nov 9 04:02:07 2000 GMT
        Not After : Nov 9 04:02:07 2001 GMT
        Subject: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd,
        CN=fordesign/Email=fordeisgn@21cn.com
        Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
        RSA Public Key: (1024 bit)
        Modulus (1024 bit):
        00:e7:62:1b:fb:78:33:d7:fa:c4:83:fb:2c:65:c1:
        08:03:1f:3b:79:b9:66:bb:31:aa:77:d4:47:ac:be:
        e5:20:ce:ed:1f:b2:b5:4c:79:c9:9b:ad:1d:0b:7f:
        84:49:03:6b:79:1a:fd:05:ca:36:b3:90:b8:5c:c0:
        26:93:c0:02:eb:78:d6:8b:e1:91:df:85:39:33:fc:
        3d:59:e9:7f:58:34:bf:be:ef:bd:22:a5:be:26:c0:
        16:9b:41:36:45:05:fe:f9:b2:05:42:04:c9:3b:28:
        c1:0a:48:f4:c7:d6:a8:8c:f9:2c:c1:1e:f5:8b:dc:
        19:59:7c:47:f7:91:cc:5d:75
        Exponent: 65537 (0x10001)
        X509v3 extensions:
        X509v3 Subject Key Identifier:
        69:41:87:55:BD:52:990:F5:EC:11:7F:0A:01:53:58:4E:0B:7C:F7
        X509v3 Authority Key Identifier:
        keyid:69:41:87:55:BD:52:990:F5:EC:11:7F:0A:01:53:58:
        4E:0B:7C:F7
        DirName:/C=AU/ST=Some-State/O=Internet Widgits Pty
        Ltd/CN=fordesign/Email=fordeisgn@21cn.com
        serial:00
        X509v3 Basic Constraints:
        CA:TRUE
        Signature Algorithm: md5WithRSAEncryption
        79:14:99:4a:8f:64:63:ab:fb:ad:fe:bc:ba:df:53:97:c6:92:
        41:4d:de:fc:59:98:39:36:36:8e:c6:05:8d:0a:bc:49:d6:20:
        02:9d:a2:5f:0f:03:12:1b:f2:af:23:90:7f:b1:6a:86:e8:3e:
        0b:2c:fd:11:89:86:c3:21:3c:25:e2:9c:de:64:7a:14:82:32:
        22:e1:35:be:39:90:f5:41:60:1a:77:2e:9f:d9:50:f4:81:a4:
        67:b5:3e:12:e5:06:da:1f:d9:e3:93:2d:fe:a1:2f:a9:f3:25:
        05:03:00:24:00:f1:5d:1f:d7:77:8b:c8:db:62:82:32:66:fd:
        10:fa
        是否看到我們先提到過的subject name/issuer name.本證書中這倆個字段是一樣的,明顯是自簽名證書,是一個Root CA的證書。從X509v3 extension開始就是證書擴展項了。
        這里有個X509v3 Basic constraints. 里面的CA字段決定該證書是否可以做CA的證書,這里是TURE。如果這個字段沒有,那么會根據其他內容決定該證書是否可以做CA證書。
        如果是X509v1證書,又沒有這個擴展項,那么只要subject name和issuer name相同,就認為是Root CA證書了。
        本例的證書沒有證書用途擴展項,它是一個叫keyUseage的字段。
        舉個例子就可以看出該字段目前可以有以下值
        openssl x509 -purpose -in server.crt
        Certificate purposes:
        SSL client : Yes
        SSL client CA : No
        SSL server : Yes
        SSL server CA : No
        Netscape SSL server : Yes
        Netscape SSL server CA : No
        S/MIME signing : Yes
         S/MIME signing CA : No
        S/MIME encryption : Yes
         S/MIME encryption CA : No
         CRL signing : Yes
        CRL signing CA : No
        Any Purpose : Yes
        Any Purpose CA : Yes
        SSL Client
        SSL Client CA
       
        每個值的具體意義應該可以看名字就知道了吧?
        X509指令在轉化證書成CSR的時候沒有辦法把證書里的擴展項轉化過去給CSR簽名做證書的時候,如果使用了多個option,應該自己保證這些option沒有沖突。

    posted on 2009-11-27 17:47 零全零美 閱讀(1408) 評論(0)  編輯  收藏 所屬分類: 安全相關
    主站蜘蛛池模板: 中文字幕看片在线a免费| 亚洲国产V高清在线观看| 任你躁在线精品免费| 亚洲精品乱码久久久久蜜桃| 久久亚洲国产精品五月天| 亚洲精品黄色视频在线观看免费资源 | 亚洲Aⅴ在线无码播放毛片一线天| 亚洲AV无码一区二区二三区入口| 免费一看一级毛片全播放| 免费三级毛片电影片| 十九岁在线观看免费完整版电影| 在线播放国产不卡免费视频| 亚洲成av人在线观看网站| 33333在线亚洲| 亚洲综合在线成人一区| 亚洲AV日韩精品久久久久久久| 亚洲精品视频在线看| 四虎永久在线精品免费影视 | 亚洲视频在线观看视频| 亚洲区小说区图片区QVOD| 亚洲毛片网址在线观看中文字幕 | 国产亚洲精品美女久久久| 亚洲另类少妇17p| 免费一级特黄特色大片在线| 免费的涩涩视频在线播放| 一个人免费观看视频www | 亚洲精品永久在线观看| 亚洲国产精品xo在线观看| 久久精品国产亚洲精品2020| 亚洲Aⅴ无码专区在线观看q | 69av免费观看| 在线观看免费中文视频| 国产h肉在线视频免费观看| 97碰公开在线观看免费视频| 1a级毛片免费观看| 无人在线直播免费观看| 一二三四在线观看免费高清中文在线观看| 成年人免费的视频| 手机在线看永久av片免费| 最新猫咪www免费人成| 日韩成人免费在线|