校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Linux下OpenSSL客戶端中使用req命令來生成證書的教程

Linux下OpenSSL客戶端中使用req命令來生成證書的教程

熱門標簽:琿春市地圖標注app 公司400電話辦理價格 百度地圖標注開鎖電話 安陽百應電銷機器人加盟 潮州地圖標注 依蘭縣地圖標注app pageadm實現地圖標注 山東企業電銷機器人價格 百度中國地圖標注中心

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

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

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

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

為了數據傳輸安全,越來越多的網站啟用https。在https握手階段,服務器首先把自己的證書發送給用戶(瀏覽器),瀏覽器查看證書中的發證機構,然后在機器內置的證書中(在PC或者手機上,內置了世界上著名的CA機構的證書)查找對應CA證書,然后使用內置的證書公鑰校驗服務器的證書真偽。如果校驗失敗,瀏覽器會提示服務器證書有問題,詢問用戶是否繼續。

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

2、req指令說明

上一節我們看到了申請證書流程,生成密鑰對我們已經知道,那么如何生成證書請求呢,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]
發現其參數多而復雜,還有許多沒有用到過的參數。但是在實際應用中我們使用到的參數很有限,我們根據req的基本功能來學習。

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

[new/x509]

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

[key/newkey/keyout]

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

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

[in/out/inform/outform/keyform]

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

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

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

[config]

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

除上述主要參數外,還有許多其他的參數,不在一一敘述,有興趣的讀者可以查看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密鑰參數:

復制代碼
代碼如下:

$ 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參數一樣,只需要把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)查看證書請求內容

生成證書請求:

復制代碼
代碼如下:

$ 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'
......
查看證書請求內容,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、生成證書步驟小結

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,即一個證書請求文件,你可以拿著這個文件去數字證書頒發機構(即CA)申請一個數字證書。CA會給你一個新的文件cacert.pem,那才是你的數字證書。
Step 3: Send certificate request to Certification Authority (CA)
如果是自己做測試,那么證書的申請機構和頒發機構都是自己。就可以用下面這個命令來生成證書:

復制代碼
代碼如下:

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

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

標簽:晉中 常德 林芝 三明 公主嶺 呼和浩特 香港 連云港

巨人網絡通訊聲明:本文標題《Linux下OpenSSL客戶端中使用req命令來生成證書的教程》,本文關鍵詞  Linux,下,OpenSSL,客戶端,中,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux下OpenSSL客戶端中使用req命令來生成證書的教程》相關的同類信息!
  • 本頁收集關于Linux下OpenSSL客戶端中使用req命令來生成證書的教程的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    日本一区二区三区在线不卡| 精品无人区卡一卡二卡三乱码免费卡| 国产一区二区三区免费在线观看| 91社区在线播放| 久久久噜噜噜久久中文字幕色伊伊| 亚洲国产欧美在线人成| 精品视频在线看| 午夜精品aaa| 91精品国产综合久久久蜜臀粉嫩| 一级特黄大欧美久久久| 欧洲av在线精品| 亚洲精品国产无天堂网2021| 99久久99久久免费精品蜜臀| 亚洲欧美二区三区| 欧美一二三在线| 国产麻豆成人传媒免费观看| 亚洲精品国久久99热| 欧美在线观看视频一区二区| 日韩在线a电影| 国产欧美一区二区三区沐欲| 成人精品小蝌蚪| 午夜私人影院久久久久| 欧美激情一区二区三区蜜桃视频| 欧美性猛交xxxxxxxx| 久久99热这里只有精品| 国产欧美中文在线| 色婷婷综合久久久中文一区二区| 午夜电影一区二区| 久久精品亚洲一区二区三区浴池| 91亚洲国产成人精品一区二区三| 午夜亚洲国产au精品一区二区| 国产人成亚洲第一网站在线播放| 欧美日韩一区二区电影| 国产剧情av麻豆香蕉精品| 午夜视频在线观看一区二区三区| 国产精品妹子av| 精品国产一区二区三区久久久蜜月| 在线观看亚洲专区| 国产馆精品极品| 久久99国产精品成人| 首页国产欧美久久| 亚洲午夜久久久久久久久电影院| 久久久久国产成人精品亚洲午夜| 欧美三电影在线| 欧美日韩在线三区| 欧美艳星brazzers| 日本道在线观看一区二区| 93久久精品日日躁夜夜躁欧美| 国产一区在线观看视频| 国产一区二区三区香蕉| 国产在线精品一区二区夜色 | 亚洲精品久久久久久国产精华液| 久久一夜天堂av一区二区三区| 欧美一区午夜精品| 欧美一区二区三区公司| 91精品麻豆日日躁夜夜躁| 日本乱人伦一区| 欧美日韩一卡二卡| 欧美色手机在线观看| 欧美一个色资源| 国产日本一区二区| 日韩毛片精品高清免费| 亚洲123区在线观看| 久久av中文字幕片| 99re66热这里只有精品3直播| 欧美无砖砖区免费| 中文字幕免费不卡| 亚洲3atv精品一区二区三区| 九色综合狠狠综合久久| 在线影院国内精品| 国产亚洲午夜高清国产拍精品| 一区二区三区在线视频免费 | 国产高清久久久| 欧美美女一区二区在线观看| 日韩免费视频线观看| 中文字幕在线一区| 首页国产欧美久久| 成a人片亚洲日本久久| 精品少妇一区二区| 亚洲成av人片| 色综合网色综合| 久久久精品国产99久久精品芒果| 亚洲精品菠萝久久久久久久| 另类专区欧美蜜桃臀第一页| 91国内精品野花午夜精品| 欧美变态tickling挠脚心| 一区二区久久久| 91传媒视频在线播放| 国产网站一区二区| 久久99国产精品免费| 在线成人高清不卡| 亚洲男人电影天堂| 99久久免费视频.com| 国产精品欧美一级免费| 国产九色精品成人porny| 欧美成人在线直播| 日本不卡1234视频| 欧美一级欧美一级在线播放| 亚洲一区二区av在线| 欧美日韩国产免费一区二区| 亚洲成人精品影院| 91精品福利视频| 五月婷婷激情综合| 欧美日韩专区在线| 亚洲成人免费视频| 精品国产乱码久久久久久图片 | 99re在线精品| 日韩国产高清影视| 久久久精品蜜桃| 欧美亚洲丝袜传媒另类| 久久国产精品99久久人人澡| 久久日一线二线三线suv| 国产白丝网站精品污在线入口| 亚洲视频在线观看一区| 欧美一卡二卡三卡| av中文字幕一区| 精品在线播放午夜| 一区二区国产盗摄色噜噜| 欧美成人精品高清在线播放 | 色8久久人人97超碰香蕉987| 美日韩黄色大片| 一区二区三区四区不卡在线| 欧美成人乱码一区二区三区| 99久久精品国产一区二区三区 | 欧美在线一区二区| 国产精品77777| 久久99精品久久只有精品| 亚洲一二三专区| 自拍偷拍国产精品| 久久日韩粉嫩一区二区三区| 欧美二区在线观看| 欧美性xxxxxxxx| 欧美日韩免费电影| 在线国产电影不卡| 99r精品视频| 91亚洲精品一区二区乱码| 国产乱国产乱300精品| 久久99精品国产麻豆不卡| 日韩黄色片在线观看| 亚洲国产精品久久久久婷婷884| 国产精品盗摄一区二区三区| 久久久久久久久久久久久久久99 | 经典三级一区二区| 六月丁香综合在线视频| 日韩av电影天堂| 久久精品国产99国产精品| 久久精品国产免费| 国产乱人伦偷精品视频免下载| 久久爱www久久做| 国产福利精品导航| 成人av在线电影| 91美女片黄在线观看| 欧美电影在线免费观看| 精品国产电影一区二区| 国产婷婷色一区二区三区| 国产精品三级电影| 亚洲综合一区在线| 日韩av在线发布| 粉嫩13p一区二区三区| 97久久精品人人做人人爽50路| 日本不卡一二三区黄网| 亚洲色图清纯唯美| 亚洲国产日产av| 97久久精品人人澡人人爽| 久久色成人在线| 国产电影精品久久禁18| 日韩久久精品一区| 精品中文字幕一区二区小辣椒| bt7086福利一区国产| 日韩女优视频免费观看| 亚洲欧美日韩国产一区二区三区 | 久久蜜臀精品av| 首页国产丝袜综合| 日本久久电影网| 国产精品家庭影院| 国产精品自拍三区| 欧美大片国产精品| 五月天亚洲精品| 色88888久久久久久影院按摩| 国产日韩综合av| 激情久久久久久久久久久久久久久久| 欧美影院一区二区三区| 亚洲男帅同性gay1069| 高清shemale亚洲人妖| 精品国产精品网麻豆系列| 美女视频黄久久| 国产欧美一区二区精品性色| 国产一区二区三区不卡在线观看| 久久久久久久久久久久久久久99 | 亚洲自拍偷拍综合| 在线观看一区二区视频| 午夜视频在线观看一区二区三区| 欧美日韩一区二区三区视频| 日本午夜精品一区二区三区电影 | 欧美三级三级三级| 免费看黄色91| 国产欧美一区二区三区在线看蜜臀 | 欧美高清激情brazzers| 久久精品国产成人一区二区三区| 日本一区二区成人|