1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Linux下OpenSSL客戶端中使用req命令來生成證書的操作方法

      這篇文章給大家介紹Linux下OpenSSL客戶端中使用req命令來生成證書的操作方法,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

      創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設服務,團隊從業(yè)經(jīng)驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為黃島企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,黃島網(wǎng)站改版等技術服務。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

      openssl req 用于生成證書請求,以讓第三方權威機構CA來簽發(fā),生成我們需要的證書。req 命令也可以調(diào)用x509命令,以進行格式轉(zhuǎn)換及顯示證書文件中的text,modulus等信息。如果你還沒有密鑰對,req命令可以一統(tǒng)幫你生成密鑰對和證書請求,也可以指定是否對私鑰文件進行加密。

      1、密鑰、證書請求、證書概要說明

      在證書申請簽發(fā)過程中,客戶端涉及到密鑰、證書請求、證書這幾個概念,初學者可能會搞不清楚三者的關系,網(wǎng)上有的根據(jù)后綴名來區(qū)分三者,更讓人一頭霧水。我們以申請證書的流程說明三者的關系。客戶端(相對于CA)在申請證書的時候,大體上有三個步驟:

      第一步:生成客戶端的密鑰,即客戶端的公私鑰對,且要保證私鑰只有客戶端自己擁有。
      第二步:以客戶端的密鑰和客戶端自身的信息(國家、機構、域名、郵箱等)為輸入,生成證書請求文件。其中客戶端的公鑰和客戶端信息是明文保存在證書請求文件中的,而客戶端私鑰的作用是對客戶端公鑰及客戶端信息做簽名,自身是不包含在證書請求中的。然后把證書請求文件發(fā)送給CA機構。
      第三步:CA機構接收到客戶端的證書請求文件后,首先校驗其簽名,然后審核客戶端的信息,最后CA機構使用自己的私鑰為證書請求文件簽名,生成證書文件,下發(fā)給客戶端。此證書就是客戶端的身份證,來表明用戶的身份。
      至此客戶端申請證書流程結(jié)束,其中涉及到證書簽發(fā)機構CA,CA是被絕對信任的機構。如果把客戶端證書比作用戶身份證,那么CA就是頒發(fā)身份證的機構,我們以https為例說明證書的用處。

      為了數(shù)據(jù)傳輸安全,越來越多的網(wǎng)站啟用https。在https握手階段,服務器首先把自己的證書發(fā)送給用戶(瀏覽器),瀏覽器查看證書中的發(fā)證機構,然后在機器內(nèi)置的證書中(在PC或者手機上,內(nèi)置了世界上著名的CA機構的證書)查找對應CA證書,然后使用內(nèi)置的證書公鑰校驗服務器的證書真?zhèn)巍H绻r炇。瑸g覽器會提示服務器證書有問題,詢問用戶是否繼續(xù)。

      例如12306網(wǎng)站,它使用的自簽名的證書,所以瀏覽器會提示證書有問題,在12306的網(wǎng)站上有提示下載安裝根證書,其用戶就是把自己的根證書安裝到用戶機器的內(nèi)置證書中,這樣瀏覽器就不會報證書錯誤。但是注意,除非特別相信某個機構,否則不要在機器上隨便導入證書,很危險。

      2、req指令說明

      上一節(jié)我們看到了申請證書流程,生成密鑰對我們已經(jīng)知道,那么如何生成證書請求呢,req指令就該上場了,我們可以查看req的man手冊,如下:

      openssl req [-inform PEM|DER] [-outform PEM|DER] [-in filename] [-passin arg] [-out filename] [-passout arg] [-text] [-pubkey] [-noout] [-verify] [-modulus] [-new] [-rand file(s)] [-newkey rsa:bits][-newkey alg:file] [-nodes] [-key filename] [-keyform PEM|DER] [-keyout filename] [-keygen_engine id] [-[digest]] [-config filename] [-subj arg] [-multivalue-rdn] [-x509] [-days n] [-set_serial n][-asn1-kludge] [-no-asn1-kludge] [-newhdr] [-extensions section] [-reqexts section] [-utf8] [-nameopt] [-reqopt] [-subject] [-subj arg] [-batch] [-verbose] [-engine id]
      發(fā)現(xiàn)其參數(shù)多而復雜,還有許多沒有用到過的參數(shù)。但是在實際應用中我們使用到的參數(shù)很有限,我們根據(jù)req的基本功能來學習。

      req的基本功能主要有兩個:生成證書請求和生成自簽名證書。其他還有一些校驗、查看請求文件等功能,示例會簡單說明下。參數(shù)說明如下

      [new/x509]

      當使用-new選取的時候,說明是要生成證書請求,當使用x509選項的時候,說明是要生成自簽名證書。

      [key/newkey/keyout]

      key和newkey是互斥的,key是指定已有的密鑰文件,而newkey是指在生成證書請求或者自簽名證書的時候自動生成密鑰,然后生成的密鑰名稱有keyout參數(shù)指定。

      當指定newkey選項時,后面指定rsa:bits說明產(chǎn)生rsa密鑰,位數(shù)由bits指定。指定dsa:file說明產(chǎn)生dsa密鑰,file是指生成dsa密鑰的參數(shù)文件(由dsaparam生成)

      [in/out/inform/outform/keyform]

      in選項指定證書請求文件,當查看證書請求內(nèi)容或者生成自簽名證書的時候使用

      out選項指定證書請求或者自簽名證書文件名,或者公鑰文件名(當使用pubkey選項時用到),以及其他一些輸出信息。

      inform、outform、keyform分別指定了in、out、key選項指定的文件格式,默認是PEM格式。

      [config]

      參數(shù)文件,默認是/etc/ssl/openssl.cnf(ubuntu12.04),根據(jù)系統(tǒng)不同位置不同。該文件包含生成req時的參數(shù),當在命令行沒有指定時,則采用該文件中的默認值。

      除上述主要參數(shù)外,還有許多其他的參數(shù),不在一一敘述,有興趣的讀者可以查看req的man手冊

      3、req指令使用實例

      (1)使用已有私鑰生成證書請求

      使用原有的RSA密鑰生成證書請求文件,輸入主體相關信息:

      代碼如下:


      $ openssl req -new -key RSA.pem -passin pass:123456 -out client.pem


      You are about to be asked to enter information that will be incorporated
      into your certificate request.
      What you are about to enter is what is called a Distinguished Name or a DN.
      There are quite a few fields but you can leave some blank
      For some fields there will be a default value,
      If you enter '.', the field will be left blank.
      -----
      Country Name (2 letter code) [AU]:AU
      State or Province Name (full name) [Some-State]:BJ
      Locality Name (eg, city) []:BJ
      Organization Name (eg, company) [Internet Widgits Pty Ltd]:BJ
      Organizational Unit Name (eg, section) []:BJ
      Common Name (e.g. server FQDN or YOUR name) []:BJ
      Email Address []:BJ
      Please enter the following 'extra' attributes
      to be sent with your certificate request
      A challenge password []:12345
      An optional company name []:BJ
      ......
      使用原有的RSA密鑰生成證書請求文件,指定-batch選項,主體信息從配置文件讀取:

      代碼如下:


      $ openssl req -new -key RSA.pem -passin pass:123456 -out client.pem -batch


      使用原有的RSA密鑰生成證書請求文件,指定-batch選項,主體信息由命令行subj指定:

      代碼如下:


      openssl req -new -key RSA.pem -passin pass:123456 -out client.pem -subj /C=AU/ST=Some-State/O=Internet


      使用原有的RSA密鑰生成證書請求文件,指定-batch選項,主體信息由命令行subj指定,且輸出公鑰:

      代碼如下:


      $ openssl req -new -key RSA.pem -passin pass:123456 -out client.pem -subj /C=AU/ST=Some-State/O=Internet -pubkey


      可以看到公鑰和請求信息:

      代碼如下:


      $ cat client.pem


      -----BEGIN PUBLIC KEY-----
      MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL6e+hk0TAsYlPk5XB1tLCtCO8wQ7JMM
      YQ9SMy4Q1liPg4TdgSkdfbLB2UXmzzMCp+ZBDk9txwtewqv7PVcvY0MCAwEAAQ==
      -----END PUBLIC KEY-----
      -----BEGIN CERTIFICATE REQUEST-----
      MIIBGDCBwwIBADA1MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTER
      MA8GA1UECgwISW50ZXJuZXQwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAvp76GTRM
      CxiU+TlcHW0sK0I7zBDskwxhD1IzLhDWWI+DhN2BKR19ssHZRebPMwKn5kEOT23H
      C17Cq/s9Vy9jQwIDAQABoCkwJwYJKoZIhvcNAQkOMRowGDAJBgNVHRMEAjAAMAsG
      A1UdDwQEAwIF4DANBgkqhkiG9w0BAQUFAANBAFBiB0fTUwTSoFeQdTWIr3KXzDHP
      bgLy1/nlJ71dYLfGGrR61RKmrXgpf76akURtF+gEXwLMfPO6FQlaIOYEe/c=
      -----END CERTIFICATE REQUEST-----


      (2)自動生成密鑰,生成證書請求文件

      自動生成1024位RSA密鑰,并生成證書請求文件:

      代碼如下:


      $ openssl req -new -newkey rsa:1024 -out client.pem -keyout RSA.pem -batch


      Generating a 1024 bit RSA private key
      .......................................++++++
      ...............................++++++
      writing new private key to 'RSA.pem'
      Enter PEM pass phrase:
      Verifying - Enter PEM pass phrase:
      ......
      自動生成1024位RSA密鑰,并生成證書請求文件,指定-nodes文件,密鑰文件不加密:

      代碼如下:


      $ openssl req -new -newkey rsa:1024 -out client.pem -keyout RSA.pem -batch -nodes


      Generating a 1024 bit RSA private key
      ..++++++
      .........................++++++
      writing new private key to 'RSA.pem'
      ......
      自動生成1024位DSA密鑰參數(shù):

      代碼如下:


      $ openssl dsaparam -out DSA.param 1024


      Generating DSA parameters, 1024 bit long prime
      This could take some time
      ...+.+..+.+++++++++++++++++++++++++++++++++++++++++++++++++++*
      ................+...........+......+.+.............+.+.....+.+++++++++++++++++++++++++++++++++++++++++++++++++++*
      自動生成1024位DSA密鑰,并生成證書請求文件,指定-nodes文件,密鑰文件不加密:

      代碼如下:


      $ openssl req -new -newkey dsa:DSA.param -out client.pem -keyout DSA.pem -batch -nodes


      Generating a 1024 bit DSA private key
      writing new private key to 'DSA.pem'
      ......


      (3)生成自簽名證書

      生成自簽名證書,與req參數(shù)一樣,只需要把req修改為x509即可:

      代碼如下:


      $ openssl req -x509 -newkey rsa:1024 -out client.cer -keyout RSA.pem -batch -nodes


      Generating a 1024 bit RSA private key
      .........++++++
      ..++++++
      writing new private key to 'RSA.pem'
      ......
      查看證書文件:

      代碼如下:


      $ openssl x509 -in client.cer -noout -text


      Certificate:
          Data:
              Version: 3 (0x2)
          .....
          Signature Algorithm: sha1WithRSAEncryption
               5b:d7:f5:fd:18:3a:a9:22:2a:d9:f1:fc:00:3a:cf:23:ff:d1:
               82:e5:2d:3f:7e:97:a8:38:32:e6:88:7a:ce:9f:31:cc:ea:60:
               06:d1:96:bb:c8:42:ec:ef:26:73:4e:3b:2d:fa:0f:16:c2:25:
               30:1b:a5:ca:35:bd:9b:dd:4b:41:d4:8b:95:3a:d4:7c:aa:8d:
               0d:2d:e7:f3:95:33:d2:4a:5a:7f:a2:5d:cc:48:60:9f:ca:2d:
               77:d9:ed:e9:09:f3:a1:18:96:1d:91:c6:1c:2b:7a:c1:d6:5d:
               81:87:25:0d:32:6a:55:d2:89:95:c5:32:44:cc:9d:e7:68:6f:
               d8:80


      (4)查看證書請求內(nèi)容

      生成證書請求:

      代碼如下:


      $ openssl req -new -newkey rsa:1024 -out client.req -keyout RSA.pem -batch -nodes


      Generating a 1024 bit RSA private key
      ...............................................................++++++
      ......................++++++
      writing new private key to 'RSA.pem'
      ......
      查看證書請求內(nèi)容,subject指定輸出主體:

      代碼如下:


      $ openssl req -in client.req -noout -text -subject


      Certificate Request:
          Data:
              Version: 0 (0x0)
              Subject: C=AU, ST=Some-State, O=Internet Widgits Pty Ltd
              Subject Public Key Info:
                  Public Key Algorithm: rsaEncryption
                      Public-Key: (1024 bit)
                      Modulus:
                      ...  
                   Exponent: 65537 (0x10001)
              Attributes:
              Requested Extensions:
                  X509v3 Basic Constraints:
                      CA:FALSE
                  X509v3 Key Usage:
                      Digital Signature, Non Repudiation, Key Encipherment
          Signature Algorithm: sha1WithRSAEncryption
      ...
         subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd
        
      (5)校驗證書請求文件

      指定verify指令,校驗證書請求文件,其操作時提取請求文件中的公鑰來驗證簽名信息:

      代碼如下:


      $ openssl req -verify -in client.req -noout


      verify OK


      4、生成證書步驟小結(jié)

      Step 1. Create key (password protected)

      代碼如下:


      openssl genrsa -out prvtkey.pem 1024/2038                     (with out password protected)  

      代碼如下:


      openssl genrsa -des3 -out prvtkey.pem 1024/2048    (password protected)


      這個命令會生成一個1024/2048位的密鑰。
      Step 2. Create certification request

      代碼如下:


      openssl req -new -key prvtkey.pem -out cert.csr
      openssl req -new -nodes -key prvtkey.pem -out cert.csr


      這個命令將會生成一個證書請求,當然,用到了前面生成的密鑰prvtkey.pem文件
      這里將生成一個新的文件cert.csr,即一個證書請求文件,你可以拿著這個文件去數(shù)字證書頒發(fā)機構(即CA)申請一個數(shù)字證書。CA會給你一個新的文件cacert.pem,那才是你的數(shù)字證書。
      Step 3: Send certificate request to Certification Authority (CA)
      如果是自己做測試,那么證書的申請機構和頒發(fā)機構都是自己。就可以用下面這個命令來生成證書:

      代碼如下:


      openssl req -new -x509 -key prvtkey.pem -out cacert.pem -days 1095


      這個命令將用上面生成的密鑰privkey.pem生成一個數(shù)字證書cacert.pem

      關于Linux下OpenSSL客戶端中使用req命令來生成證書的操作方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


      網(wǎng)頁名稱:Linux下OpenSSL客戶端中使用req命令來生成證書的操作方法
      網(wǎng)站地址:http://www.ef60e0e.cn/article/gdejsd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        东方市| 民权县| 夏河县| 旌德县| 壶关县| 石阡县| 苗栗县| 麻江县| 基隆市| 黑龙江省| 沾化县| 西华县| 古蔺县| 阿坝县| 晋中市| 灌阳县| 周宁县| 佛学| 鸡东县| 田林县| 和林格尔县| 九江县| 达州市| 六盘水市| 江孜县| 信宜市| 宝应县| 玉田县| 恩平市| 普安县| 共和县| 花莲县| 都昌县| 左云县| 桦甸市| 福海县| 鄂尔多斯市| 闵行区| 新兴县| 井陉县| 从化市|