<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簡介-指令req

        用法:
       
        openssl req [-inform PEM|DER] [-outform PEM|DER] [-in filename]
       
        [-passin arg] [-out filename] [-passout arg] [-text] [-noout]
       
        [-verify] [-modulus] [-new] [-rand file(s)] [-newkey rsa]
       
        [-newkey dsa] [-nodes] [-key filename] [-keyform PEM|DER]
       
        [-keyout filename] [-[md5|sha1|md2|mdc2]] [-config filename]
       
        [-x509] [-days n] [-asn1-kludge] [-newhdr] [-extensions section]
       
        [-reqexts section]
       
         描述:
        本指令用來創建和處理PKCS#10格式的證書.它還能夠建立自簽名證書,做Root CA.

             
        OPTIONS
        -inform DER|PEM
        指定輸入的格式是DEM還是DER. DER格式采用ASN1的DER標準格式。一般用的多的都是PEM格式,就是base64編碼格式.你去看看你做出來的那些.key, .crt文件一般都是PEM格式的,第一行和最后一行指明內容,中間就是經過編碼的東西。
        -outform DER|PEM
        和上一個差不多,不同的是指定輸出格式
        -in filename
        要處理的CSR的文件名稱,只有-new和-newkey倆個option沒有被set,本option才有效
        -passin arg
        去看看CA那一章關于這個option的解釋吧。
         -out filename
        要輸出的文件名
        -passout arg
        參看dsa指令里的passout這個option的解釋吧.
       -text
       將CSR文件里的內容以可讀方式打印出來
        -noout
        不要打印CSR文件的編碼版本信息.
        -modulus
        將CSR里面的包含的公共米要的系數打印出來.
        -verify
        檢驗請求文件里的簽名信息.
        -new
        本option產生一個新的CSR, 它會要用戶輸入創建CSR的一些必須的信息.至于需要哪些信息,是在config文件里面定義好了的.如果-key沒有被set, 那么就將根據config文件里的信息先產生一對新的RSA密鑰
        -rand file(s)
        產生key的時候用過seed的文件,可以把多個文件用冒號分開一起做seed.
        -newkey arg
        同時生成新的私有密鑰文件和CSR文件. 本option是帶參數的.如果是產生RSA的私有密鑰文件,參數是一個數字, 指明私有密鑰bit的長度. 如果是產生DSA的私有密鑰文件,參數是DSA密鑰參數文件的文件名.
        -key filename
        參數filename指明我們的私有密鑰文件名.允許該文件的格式是PKCS#8.
        -keyform DER|PEM
        指定輸入的私有密鑰文件的格式是DEM還是DER. DER格式采用ASN1的DER標準格式。一般用的多的都是PEM格式,就是base64編碼格式.你去看看你做出來的那些.key, .crt文件一般都是PEM格式的,第一行和最后一行指明內容,中間就是經過編碼的東西。
        -outform DER|PEM
        和上一個差不多,不同的是指定輸出格式
        -keyform PEM|DER
        私有密鑰文件的格式, 缺省是PEM
        -keyout filename
        指明創建的新的私有密鑰文件的文件名. 如果該option沒有被set, 將使用config文件里面指定的文件名.
        -nodes
        本option被set的話,生成的私有密鑰文件將不會被加密.
        -[md5|sha1|md2|mdc2]
        指明簽發的證書使用什么哈希算法.如果沒有被set, 將使用config文件里的相應item的設置. 但DSA的CSR將忽略這個option, 而采用SHA1哈希算法.
        -config filename
        使用的config文件的名稱. 本option如果沒有set, 將使用缺省的config文件.
        -x509
        本option將產生自簽名的證書. 一般用來錯測試用,或者自己玩下做個Root CA.證書的擴展項在 config文件里面指定.
       -days n
       如果-509被set, 那么這個option的參數指定我們自己的CA給人家簽證書的有效期.缺省是30天.
        -extensions section -reqexts section
        這倆個option指定config文件里面的與證書擴展和證書請求擴展有關的倆個section的名字(如果-x509這個option被set).這樣你可以在config文件里弄幾個不同的與證書擴展有關的section, 然后為了不同的目的給CSR簽名的時候指明不同的section來控制簽名的行為.
        -asn1-kludge
        缺省的req指令輸出完全符合PKCS10格式的CSR, 但有的CA僅僅接受一種非正常格式的CSR, 這個option的set就可以輸出那種格式的CSR. 要解釋這倆種格式有點麻煩, 需要用到ASN1和PKCS的知識,而且現在這樣子怪的CA幾乎沒有,所以省略解釋
        -newhdr
        在CSR問的第一行和最后一行中加一個單詞"NEW", 有的軟件(netscape certificate server)和有的CA就有這樣子的怪癖嗜好.如果那些必須要的option的參數沒有在命令行給出,那么就會到config文件里去查看是否有缺省值, 然后時候。config文件中相關的一些KEY的解釋與本指令有關的KEY都在[req]這個section里面.
        input_password output_password
        私有密鑰文件的密碼和把密碼輸出的文件名.同指令的passin, passout的意義相同.
        default_bits
        指定產生的私有密鑰長度, 如果為空,那么就用512.只有-new被set, 這個設置才起作用,意義同-newkey相同.
        default_keyfile
        指定輸出私有密鑰文件名,如果為空, 將輸出到標準輸入,意義同-keyout相同.
        oid_file
        oid_section
        與oid文件有關的項, oid不清楚是什么東西來的.
        RANDFILE
        產生隨機數字的時候用過seed的文件,可以把多個文件用冒號分開一起做seed.
        encrypt_key
        如果本KEY設置為no, 那么如果生成一個私有密鑰文件,將不被加密.同命令行的-nodes的意義相同.
        default_md
        指定簽名的時候使用的哈希算法,缺省為MD5. 命令行里有同樣的功能輸入.
        string_mask
        屏蔽掉某些類型的字符格式. 不要亂改這個KEY的值!!有的字符格式netscape不支持,所以亂改這個KEY很危險.
        req_extensions
        指明證書請求擴展section, 然后由那個secion指明擴展的特性. openssl的缺省config文件里, 擴展的是X509v3, 不擴展的是x509v1.這個KEY的意義和命令行里-reqexts相同.
        x509_extensions
        同命令行的-extension的意義相同.指明證書擴展的sesion, 由那個section指明證書擴展的特性.
        prompt
        如果這個KEY設置為no, 那么在生成證書的時候需要的那些信息將從config文件里讀入,而不是從標準輸入由用戶去輸入, 同時改變下倆個KEY所指明的section的格式.
        attributes
        一個過時了的東西, 不知道也罷. 不過它的意義和下一個KEY有點類似,
        格式則完全相同.

    distinguished_name
       指定一個section, 由那個section指定在生成證書或者CRS的時候需要的資料.該section的格式如下:
        其格式有倆種, 如果KEY prompt被set成no(看看prompt的解釋), 那么這個secion的格式看起來就是這樣子的:
         CN=My Name
        OU=My Organization
        emailAddress=someone@somewhere.org
        就說只包括了字段和值。這樣子可以可以讓其他外部程序生成一個摸板文件,包含所有字段和值, 把這些值提出來.等下舉例時間會有詳細說明.如果prompt沒有被set成no, 那么這個section的格式則如下:
        fieldName="please input ur name"
       
         fieldName_default="fordesign"
       
         fieldName_min= 3
       
         fieldName_max= 18
       
        "fieldname"就是字段名, 比如commonName(或者CN). fieldName(本例中是"prompt"是用來提示用戶輸入相關的資料的.如果用戶什么都不輸, 那么就使用確省值.如果沒有缺省值, 那么該字段被忽略.用戶如果輸入 '.' ,也可以讓該字段被忽略.
        用戶輸入的字節數必須在fieldName_min和fieldName_max之間. 不同的section還可能對輸入的字符有特殊規定,比如必須是可打印字符.那么在本例里面, 程序的表現將如下:
        首先把fieldName打印出來給用戶以提示
        please input ur name:
        之后如果用戶必須輸入3到18之間的一個長度的字符串, 如果用戶什么也不輸入,那么就把fieldName_default里面的值"fordesign"作為該字段的值添入.
        有的字段可以被重復使用.這就產生了一個問題, config文件是不允許同樣的section文件里面有多于一個的相同的key的.其實這很容易解決,比如把它們的名字分別叫做 "1.organizationName", "2.organizationName"
        openssl在編譯的時候封裝了最必須的幾個字段, 比如commonName, countryName, localityName, organizationName,organizationUnitName, stateOrPrivinceName還增加了emailAddress surname, givenName initials 和 dnQualifier.
        舉例時間:
        就使用確省值.如果沒有缺省值, 那么該字段被忽略.用戶如果輸入 '.' ,也可以讓該字段被忽略.用戶輸入的字節數必須在fieldName_min和fieldName_max之間. 不同的section還可能對輸入的字符有特殊規定,比如必須是可打印字符.那么在本例里面, 程序的表現將如下:
        首先把fieldName打印出來給用戶以提示
        please input ur name:
        之后如果用戶必須輸入3到18之間的一個長度的字符串, 如果用戶什么也不輸入,那么就把fieldName_default里面的值"fordesign"作為該字段的值添入.
        有的字段可以被重復使用.這就產生了一個問題, config文件是不允許同樣的section文件里面有多于一個的相同的key的.其實這很容易解決,比如把它們的名字分別叫做 "1.organizationName", "2.organizationName" openssl在編譯的時候封裝了最必須的幾個字段,比如commonName,countryName,localityName, organizationName,organizationUnitName, stateOrPrivinceName還增加了emailAddress surname, givenName initials 和 dnQualifier.
        舉例時間:
        Examine and verify certificate request:
        檢查和驗證CSR文件.
        openssl req -in req.pem -text -verify -noout
        做自己的私有密鑰文件, 然后用這個文件生成CSR文件.
        openssl genrsa -out key.pem 1024
        openssl req -new -key key.pem -out req.pem
        也可以一步就搞定:
        openssl req -newkey rsa:1024 -keyout key.pem -out req.pem
        做一個自簽名的給Root CA用的證書:
        openssl req -x509 -newkey rsa:1024 -keyout key.pem -out crt.pem
        下面是與本指令有關的config文件中相關的部分的一個例子:
        [ req ]
        default_bits = 1024
        default_keyfile = privkey.pem
        distinguished_name = req_distinguished_name
        attributes = req_attributes
        x509_extensions = v3_ca
        dirstring_type = nobmp
        [ req_distinguished_name ]
        countryName = Country Name (2 letter code)
        countryName_default = AU
        countryName_min = 2
        countryName_max = 2
        localityName = Locality Name (eg, city)
        organizationalUnitName = Organizational Unit Name (eg, section)
        commonName = Common Name (eg, YOUR name)
        commonName_max = 64
        emailAddress = Email Address
        emailAddress_max = 40
        [ req_attributes ]
        challengePassword = A challenge password
        challengePassword_min = 4
        challengePassword_max = 20
         [ v3_ca ]
         subjectKeyIdentifier=hash
        authorityKeyIdentifier=keyid:always,issuer:always
        basicConstraints = CA:true
        RANDFILE = $ENV::HOME/.rnd
        [ req ]
        default_bits = 1024
        default_keyfile = keyfile.pem
        distinguished_name = req_distinguished_name
        attributes = req_attributes
        prompt = no
        output_password = mypass
        [ req_distinguished_name ]
        C = GB
        ST = Test State or Province
        L = Test Locality
        O = Organization Name
        OU = Organizational Unit Name
        CN = Common Name
        emailAddress = test@email.address
        [ req_attributes ]
        challengePassword = A challenge password
        一般的PEM格式的CSR文件的開頭和結尾一行如下
        -----BEGIN CERTIFICATE REQUEST----
        -----END CERTIFICATE REQUEST----
        但個把變態軟件和CA硬是需要CSR的文件要這樣子:
        -----BEGIN NEW CERTIFICATE REQUEST----
        -----END NEW CERTIFICATE REQUEST----
        用-newhdr就可以啦, 或者你自己手工加也中.openssl對倆種格式都承認.
        openssl的config文件也可以用環境變量OPENSSL_CONF或者SSLEAY_CONF來指定.
    posted on 2009-11-27 17:41 零全零美 閱讀(2754) 評論(0)  編輯  收藏 所屬分類: 安全相關
    主站蜘蛛池模板: 亚洲黄色片在线观看| 美美女高清毛片视频黄的一免费 | 亚洲国产人成中文幕一级二级| 一级一级一片免费高清| 亚洲精品高清国产麻豆专区| 午夜dj免费在线观看| 日批视频网址免费观看| 亚洲一级特黄特黄的大片| 最新亚洲成av人免费看| 美女被cao免费看在线看网站| 十八禁的黄污污免费网站| 7777久久亚洲中文字幕蜜桃| 四虎影视精品永久免费网站| 99久热只有精品视频免费看| 亚洲国产AV一区二区三区四区| 国产精品亚洲一区二区三区在线 | 成全影视免费观看大全二| 香蕉免费看一区二区三区| 亚洲国产成人无码AV在线影院| 亚洲av无码无在线观看红杏| 在线免费观看国产视频| 久久综合国产乱子伦精品免费 | 免费国产叼嘿视频大全网站| 国产精品亚洲一区二区三区 | 久久国产美女免费观看精品 | 国产成年无码久久久免费| 亚洲GV天堂GV无码男同| 亚洲精品美女在线观看| 亚洲啪啪AV无码片| 免费一级e一片在线播放| 91嫩草国产在线观看免费| 免费一级不卡毛片| www成人免费观看网站| 亚洲AV无码专区亚洲AV桃| 亚洲男女性高爱潮网站| 亚洲国产成人精品无码区在线观看| 全部免费国产潢色一级| 搡女人免费视频大全| 色播精品免费小视频| 99久在线国内在线播放免费观看| a级毛片免费全部播放|