亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
樓主: wingger
打印 上一主題 下一主題

[Web] openssl的man中文文檔(轉(zhuǎn)) [復制鏈接]

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
21 [報告]
發(fā)表于 2005-01-10 23:51 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

openssl簡介-指令s_client
  
    用法:
   
    openssl s_client [-connect host:port>;] [-verify depth] [-cert filename]
   
    [-key filename] [-CApath directory] [-CAfile filename] [-reconnect]
   
    [-pause] [-showcerts] [-debug] [-nbio_test] [-state] [-nbio] [-crlf]
   
    [-ign_eof] [-quiet] [-ssl2] [-ssl3] [-tls1] [-no_ssl2] [-no_ssl3]
   
    [-no_tls1] [-bugs] [-cipher cipherlist]
   
    描述:
    用于模擬一個普通的SSL/TLS client, 對于調(diào)試和診斷SSL server很有用。

   
    OPTIONS
    -connect host:port
    這個不用解釋了吧, 連接的ip:port.
    -cert certname
    使用的證書文件。如果server不要求要證書,這個可以省略。
    -key keyfile
    使用的私有密鑰文件
    -verify depth
    指定驗證深度。記得CA也是分層次的吧?如果對方的證書的簽名CA不是Root CA,那么你可以再去驗證給該CA的證書簽名的CA, 一直到Root CA. 目前的驗證操作即使這條CA鏈上的某一個證書驗證有問題也不會影響對更深層的CA的身份的驗證。所以整個CA鏈上的問題都可以檢查出來。當然CA的驗證出問題并不會直接造成連接馬上斷開,好的應用程序可以讓你根據(jù)驗證結(jié)果決定下一步怎么走。
    -CApath directory
    一個目錄。里面全是CA的驗證資料,該目錄必須是"哈希結(jié)構(gòu)". verify指令里會詳細說明。在建立client的證書鏈的時候也有用到這個指令。
    -CAfile file
    某文件,里面是所有你信任的CA的證書的內(nèi)容。當你要建立client的證書鏈的時候也需要用到這個文件。
    -reconnect
    使用同樣的session-id連接同一個server五次,用來測試server的session緩沖功能是否有問題。
    -pause
    每次讀寫操作后都挺頓一秒。
    -showcerts
    顯示整條server的證書的CA的證書鏈。否則只顯示server的證書。
    -prexit
    當程序退出的時候打印session的信息。即使連接失敗,也會打印出調(diào)試信息。一般如果連接成功的話,調(diào)試信息將只被打出來一次。本option比較有用,因為在一次SSL連接中,cipher也可能改變,或者連接可能失敗。要注意的是:有時候打印出來的東西并不一定準確。(這樣也行??eric, 言重了.)
    -state
    打印SSL session的狀態(tài), ssl也是一個協(xié)議,當然有狀態(tài)。
    -debug
    打印所有的調(diào)試信息。
    -nbio_test
    檢查非阻塞socket的I/O運行情況。
    -nbio
    使用非阻塞socket
    -crlf
    回把你在終端輸入的換行回車轉(zhuǎn)化成/r/n送出去。
    -ign_eof
   當輸入文件到達文件尾的時候并不斷開連接。
   -quiet
   不打印出session和證書的信息。同時會打開-ign_eof這個option.
   -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, -no_tls1
   選擇用什么版本的協(xié)議。很容易理解,不用多解釋了吧。
   注意,有些很古老的server就是不能處理TLS1, 所以這個時候要關(guān)掉TLS1.n.
   -bugs
   SSL/TLS有幾處眾所周知的bug, set了這個option使出錯的可能性縮小。
   -cipher cipherlist
   由我們自己來決定選用什么cipher,盡管是由server來決定使用什么cipher,但它一般都會采用我們送過去的cipher列表里的第一個cipher.
    有哪些cipher可用?指令cipher對這個解釋的更清楚。
    一旦和某個SSL server建立連接之后,所有從server得到的數(shù)據(jù)都會被打印出來,所有你在終端上輸入的東西也會被送給server. 這是人機交互式的。這時候不能set -quiet和 -ign_eof這倆個option。如果輸入的某行開頭字母是R,那么在這里session會renegociate, 如果輸入的某行開頭是Q, 那么連接會被斷開。你完成整個輸入之后連接也會被斷開。
    If a connection is established with an SSL server then any data received from the server is displayed and any key presses will be sent to the server. When used interactively (which means neither -quiet nor -ign_eof have been given), the session will be renegociated if the line begins with an R, and if the line begins with a Q or if end of file is reached, the connection will be closed down.
    本指令主要是來debug一個SSL server的。如果想連接某個SSL HTTP server,輸入下一條指令:
   openssl s_client -connect servername:443
   如果連接成功,你可以用HTTP的指令,比如"GET /"什么的去獲得網(wǎng)頁了。
    如果握手失敗,原因可能有以下幾種:
    1. server需要驗證你的證書,但你沒有證書
    2.如果肯定不是原因1, 那么就慢慢一個一個set以下幾個option
    -bugs, -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, -no_tls1
    這可能是因為對方的server處理SSL有bug.
    有的時候,client會報錯:沒有證書可以使用,或者供選擇的證書列表是空的。這一般是因為Server沒有把給你簽名的CA的名字列進它自己認為可以信任的CA列表,你可以用檢查一下server的信任CA列表。有的http server只在 client給出了一個URL之后才驗證client的證書,這中情況下要set -prexit這個option, 并且送給server一個頁面請求。
    即使使用-cert指明使用的證書,如果server不要求驗證client的證書,那么該證書也不會被驗證。所以不要以為在命令行里加了-cert 的參數(shù)又連接成功就代表你的證書沒有問題。
    如果驗證server的證書沒有問題,就可以set -showcerts來看看server的證書的CA鏈了。
    其實這個工具并不好用, 自己寫一個client的會方便很多。
    舉例時間:
    注意,中間的pop3協(xié)議的指令是我通過終端輸入的。其他都是程序輸出的對話
    過程。具體的每行意義不用解釋了。


openssl s_client -key server.key -verify 1 -showcerts -prexit -state \
    -crlf -connect 127.0.0.1:5995
    verify depth is 1
    CONNECTED(00000003)
    SSL_connect:before/connect initialization
    SSL_connect:SSLv2/v3 write client hello A
    SSL_connect:SSLv3 read server hello A
    depth=0 /C=AU/ST=Some-State/L=gz/O=ai ltd/OU=sw/CN=fordesign/
    Email=xxx@xxx.xom
    verify error:num=20:unable to get local issuer certificate
    verify return:1
    depth=0 /C=AU/ST=Some-State/L=gz/O=ai ltd/OU=sw/CN=fordesign/
    Email=xxx@xxx.xom
    verify error:num=27:certificate not trusted
    verify return:1
    depth=0 /C=AU/ST=Some-State/L=gz/O=ai ltd/OU=sw/CN=fordesign/
    Email=xxx@xxx.xom
    verify error:num=21:unable to verify the first certificate
    verify return:1
    SSL_connect:SSLv3 read server certificate A
    SSL_connect:SSLv3 read server done A
    SSL_connect:SSLv3 write client key exchange A
    SSL_connect:SSLv3 write change cipher spec A
    SSL_connect:SSLv3 write finished A
    SSL_connect:SSLv3 flush data
    SSL_connect:SSLv3 read finished A
    Certificate chain
    0 s:/C=AU/ST=Some-State/L=gz/O=ai ltd/OU=sw/CN=fordesign/Email=xxx@xxx.xom
    i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=fordesign/
    Email=fordeisgn@21cn.com
    ----BEGIN CERTIFICATE-----
    MIIDdzCCAuCgAwIBAgIBATANBgkqhkiG9w0BAQQFADB8MQswCQYDVQQGEwJBVTET
    MBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQ
    dHkgTHRkMRIwEAYDVQQDEwlmb3JkZXNpZ24xITAfBgkqhkiG9w0BCQEWEmZvcmRl
    aXNnbkAyMWNuLmNvbTAeFw0wMDExMTIwNjE5MDNaFw0wMTExMTIwNjE5MDNaMH0x
    CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMQswCQYDVQQHEwJnejEP
    MA0GA1UEChMGYWkgbHRkMQswCQYDVQQLEwJzdzESMBAGA1UEAxMJZm9yZGVzaWdu
    MRowGAYJKoZIhvcNAQkBFgt4eHhAeHh4LnhvbTCBnzANBgkqhkiG9w0BAQEFAAOB
    jQAwgYkCgYEAuQVRVaCyF+a8/927cA9CjlrSEGOL17+Fk1U6rqZ8fJ6UR+kvhUUk
    fgyMmzrw4bhnZlk2NV5afZEhiiNdRri9f8loklGRXRkDfmhyUWtjiFWUDtzkuQoT
    6jhWfoqGNCKh/92cjq2wicJpp40wZGlfwTwSnmjN9/eNVwEoXigSy5ECAwEAAaOC
    AQYwggECMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJh
    dGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBS+WovE66PrvCAtojYMV5pEUYZtjzCB
    pwYDVR0jBIGfMIGcgBRpQYdVvVKZ0PXsEX8KAVNYTgt896GBgKR+MHwxCzAJBgNV
    BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
    aWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMTCWZvcmRlc2lnbjEhMB8GCSqGSIb3DQEJ
    ARYSZm9yZGVpc2duQDIxY24uY29tggEAMA0GCSqGSIb3DQEBBAUAA4GBADDOp/O/
    o3mBZV4vc3mm2C6CcnB7rRSYEoGm6T6OZsi8mxyF5w1NOK5oI5fJU8xcf8aYFVoi
    0i4LlsiQw+EwpnjUXfUBxp/g4Cazlv57mSS6h1t4a/BPOIwzcZGpo/R3g/fOPwsF
    F/2RC++81s6k78iezFrTs9vnsm/G4vRjngLI
    -----END CERTIFICATE-----
    ---
    Server certificate
    subject=/C=AU/ST=Some-State/L=gz/O=ai ltd/OU=sw/CN=fordesign/
    Email=xxx@xxx.xom
    issuer=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=fordesign/
    Email=fordeisgn@21cn.com
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 1069 bytes and written 342 bytes
    ---
    New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
    Server public key is 1024 bit
    SSL-Session:
    Protocol : SSLv3
    Cipher : DES-CBC3-SHA
    Session-ID: E1EC3B051F5DB8E2E3D3CD10E4C0412501DDD6641ACA932B65
    DC25DCD0A3A86E
    Session-ID-ctx:
    Master-Key: 47DB3A86375DB2E99982AFD8F5B382B4316385694B01B74BFC3
    FA26C7DBD489CABE0EE1B20CE8E95E4ABF930099084B0
    Key-Arg : None
    Start Time: 974010506
    Timeout : 300 (sec)
    Verify return code: 0 (ok)
    ---
    +OK AIMC POP service (sol7.gzai.com) is ready.
    user ssltest0
    +OK Please enter password for user <ssltest0>;.
    pass ssltest0
    +OK ssltest0 has 12 message (282948 octets)
    list
    +OK 12 messages (282948 octets)
    1 21230
    2 21230
    3 21230
    4 21230
    5 21229
    6 21230
    7 21230
    8 21230
    9 111511
    10 136
    11 141
    12 1321
     .
    quit
    +OK Pop server at (sol7.gzai.com) signing off.
    read:errno=0
    SSL3 alert write:warning:close notify
    ---
    Certificate chain
    0 s:/C=AU/ST=Some-State/L=gz/O=ai ltd/OU=sw/CN=fordesign/
    Email=xxx@xxx.xom
    i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=fordesign/
    Email=fordeisgn@21cn.com
    -----BEGIN CERTIFICATE-----
    MIIDdzCCAuCgAwIBAgIBATANBgkqhkiG9w0BAQQFADB8MQswCQYDVQQGEwJBVTET
    MBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQ
    dHkgTHRkMRIwEAYDVQQDEwlmb3JkZXNpZ24xITAfBgkqhkiG9w0BCQEWEmZvcmRl
    aXNnbkAyMWNuLmNvbTAeFw0wMDExMTIwNjE5MDNaFw0wMTExMTIwNjE5MDNaMH0x
    CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMQswCQYDVQQHEwJnejEP
    MA0GA1UEChMGYWkgbHRkMQswCQYDVQQLEwJzdzESMBAGA1UEAxMJZm9yZGVzaWdu
    MRowGAYJKoZIhvcNAQkBFgt4eHhAeHh4LnhvbTCBnzANBgkqhkiG9w0BAQEFAAOB
    jQAwgYkCgYEAuQVRVaCyF+a8/927cA9CjlrSEGOL17+Fk1U6rqZ8fJ6UR+kvhUUk
    fgyMmzrw4bhnZlk2NV5afZEhiiNdRri9f8loklGRXRkDfmhyUWtjiFWUDtzkuQoT
    6jhWfoqGNCKh/92cjq2wicJpp40wZGlfwTwSnmjN9/eNVwEoXigSy5ECAwEAAaOC
    AQYwggECMAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJh
    dGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBS+WovE66PrvCAtojYMV5pEUYZtjzCB
    pwYDVR0jBIGfMIGcgBRpQYdVvVKZ0PXsEX8KAVNYTgt896GBgKR+MHwxCzAJBgNV
    BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX
    aWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMTCWZvcmRlc2lnbjEhMB8GCSqGSIb3DQEJ
    ARYSZm9yZGVpc2duQDIxY24uY29tggEAMA0GCSqGSIb3DQEBBAUAA4GBADDOp/O/
    o3mBZV4vc3mm2C6CcnB7rRSYEoGm6T6OZsi8mxyF5w1NOK5oI5fJU8xcf8aYFVoi
    0i4LlsiQw+EwpnjUXfUBxp/g4Cazlv57mSS6h1t4a/BPOIwzcZGpo/R3g/fOPwsF
    F/2RC++81s6k78iezFrTs9vnsm/G4vRjngLI
    -----END CERTIFICATE-----
    ---
    Server certificate
    subject=/C=AU/ST=Some-State/L=gz/O=ai ltd/OU=sw/CN=fordesign/
    Email=xxx@xxx.xom
    issuer=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd/CN=fordesign/
    Email=fordeisgn@21cn.com
    ---
    No client certificate CA names sent
    ---
    SSL handshake has read 1579 bytes and written 535 bytes
    ---
    New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
    Server public key is 1024 bit
    SSL-Session:
    Protocol : SSLv3
    Cipher : DES-CBC3-SHA
    Session-ID: E1EC3B051F5DB8E2E3D3CD10E4C0412501DDD6641ACA932B65DC2
    5DCD0A3A86E
    Session-ID-ctx:
    Master-Key: 47DB3A86375DB2E99982AFD8F5B382B4316385694B01B74BFC3FA
    26C7DBD489CABE0EE1B20CE8E95E4ABF930099084B0
    Key-Arg : None
    Start Time: 974010506
    Timeout : 300 (sec)
    Verify return code: 0 (ok)

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
22 [報告]
發(fā)表于 2005-01-10 23:51 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

openssl簡介-指令s_server
用法:
   
    openssl s_server [-accept port] [-context id] [-verify depth]
   
    [-Verify depth] [-cert filename] [-key keyfile] [-dcert filename]
   
    [-dkey keyfile] [-dhparam filename] [-nbio] [-nbio_test] [-crlf]
   
    [-debug] [-state] [-CApath directory] [-CAfile filename] [-nocert]
   
    [-cipher cipherlist] [-quiet] [-no_tmp_rsa] [-ssl2] [-ssl3] [-tls1]
   
    [-no_ssl2] [-no_ssl3] [-no_tls1] [-no_dhe] [-bugs] [-hack] [-www]
   
    [-WWW] [-engine id]
   
   
   
    說明:
    和s_client是反義詞, 模擬一個實現(xiàn)了SSL的server.

   
   
    OPTIONS
    -accept port
    監(jiān)聽的TCP端口。缺省為4433.
    -context id
    設置SSL context的id, 可以設置為任何值。SSL context是什么?編程的章節(jié)會詳細介紹的。你也可以不set這個option, 有缺省的給你用的。
    -cert certname
    使用的證書文件名。缺省使用 ./server.pem
    -key keyfile
    使用的私有密鑰文件。如果沒有指定,那么證書文件會被使用。????
    The private key to use. If not specified then the certificate
    file will be used.
    -dcert filename, -dkey keyname
    指定一個附加的證書文件和私有密鑰文件。不同的cipher需要不同的證書和 私有密鑰文件。這個不同的cipher主要指cipher里面的不對稱加密算法不同  比如基于RSA的cipher需要的是RSA的私有密鑰文件和證書,而基于DSA的算法  則需要的是DSA的私有密鑰文件和證書.這個option可以讓這樣我們的server同時支持倆種算法的cipher成為可能。
    -nocert
    如果server不想使用任何證書,set這個option.
    目前只有anonymous DH算法有需要這么做。
    -dhparam filename
    使用的DH參數(shù)文件名。如果沒有set, 那么server會試圖去從證書文件里面獲得這些參數(shù)。如果證書里面沒有這么參數(shù),一些hard code的參數(shù)就被調(diào)用。
    -nodhe
    禁止使用基于EDH的cipher.
    -no_tmp_rsa
    現(xiàn)在的出口cipher有時會使用臨時RSA密鑰。那就是說每次對話的時候臨時生成密鑰對。本optio就是用來禁止這種情況的。
    -verify depth, -Verify depth
    意義和s_client的這個option一樣,但同時表示必須驗證client的證書。不記得server對client的證書驗證是可以選的嗎?-verify表示向client要求證書,但client還是可以選擇不發(fā)送證書,-Verify表示一定要client的證書驗證,否則握手告吹。
    -CApath directory
    -CAfile file
    -state
    -debug
    -nbio_test
    -nbio
    -crlf
    -quiet
    -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, -no_tls1
    -bugs
    -cipher cipherlist
    這些option于s_client的同名option意義相同。
    下面?zhèn)z個指令模擬一個簡單的http server.
    -www
    當client連接上來的時候,發(fā)回一個網(wǎng)頁,內(nèi)容就是SSL握手的一些內(nèi)容。
    -WWW
    用來把具體某個文件當網(wǎng)頁發(fā)回給client的請求。比如client的URL請求是 https://myhost/page.html ,就把 ./page.html發(fā)回給client.如果沒有set -www, -WWW這倆個option, 當一個ssl client連接上來的話它所發(fā)過來的任何東西都會顯示出來,你在終端輸入的任何東西都會發(fā)回 給client.你可以通過在終端輸入的行的第一個字母控制一些行為
    q:
    中斷當前連接,但不關(guān)閉server.
    Q
    中斷當前連接,退出程序。
    r
    進行renegotiate行為。
    R
    進行renegotiate行為, 并且要求client的證書 。
    P
    在TCP層直接送一些明文。這會使client認為我們沒有按協(xié)議的游戲規(guī)則進行通信而斷開連接。
    S
    打印出session-cache的狀態(tài)信息。session-cache在編程章節(jié)會詳細介紹。
    NOTES
    用于調(diào)試ssl client.
    下一條指令用來模擬一個小的http server, 監(jiān)聽443端口。
    openssl s_server -accept 443 -www
    session的參數(shù)可以用sess_id指令打印。
    我對這條指令實在沒有興趣,一般使用openssl都是用做server, 沒有機會調(diào)試client.我甚至沒有用過這個指令。

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
23 [報告]
發(fā)表于 2005-01-10 23:52 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

openssl簡介-指令sess_id

    用法:
   
    openssl sess_id [-inform PEM|DER] [-outform PEM|DER] [-in filename]
   
     [-out filename] [-text] [-noout] [-context ID]
   
   
    說明:
    本指令是處理SSL_SESSION結(jié)構(gòu)的,可以打印出其中的細節(jié)。這也是一個調(diào)試工具。

    -inform DER|PEM
    指定輸入格式是DER還是PEM.
    -outform DER|PEM
    指定輸出格式是DER還是PEM
   -in filename
   指定輸入的含有session信息的文件名,可以通過標準輸入得到。
   -out filename
   指定輸出session信息的文件名
   -text
   打印出明文的密鑰的各個部件。
   -cert
   set本option將會把session中使用的證書打印出來。如果-text也被set, 那么將會把其用文本格式打印出來。
    -noout
    不打印出session的編碼版本。
    -context ID
    設置session id. 不常用的一個option.
    本指令的典型的輸出是:
    SSL-Session:
    Protocol : TLSv1
    Cipher : 0016
    Session-ID: 871E62626C554CE95488823752CBD5F3673A3EF3DCE9
    C67BD916C809914B40ED
    Session-ID-ctx: 01000000
    Master-Key: A7CEFC571974BE02CAC305269DC59F76EA9F0B180CB66
    42697A68251F2D2BB57E51DBBB4C7885573192AE9AEE220FACD
    Key-Arg : None
    Start Time: 948459261
   Timeout : 300 (sec)
    Verify return code 0 (ok)
    Protocol
    使用的協(xié)議版本信息。
    Cipher
    使用的cipher, 這里是原始的SSL/TLS里定義的代碼。
    Session-ID
    16進制的session id
    Session-ID-ctx
    session-id-ctx的16進制格式。
    Master-Key
    ssl session master key.
    Key-Arg
    key的參數(shù),只用于SSLv2
    Start Time
    session開始的時間。標準的unix格式。
    Timeout
    session-timeout時間。
    Verify return code
    證書驗證返回值.
    ssl session文件的pem標準格式的第一行和最后一行是:
    ---BEGIN SSL SESSION PARAMETERS-----
    -----END SSL SESSION PARAMETERS-----
    因為ssl session輸出包含握手的重要信息:master key, 所以一定要用一定的加密算法把起輸出加密。一般是禁止在實際應用中把session的信息輸出。我沒用過這個工具。研究source的時候這個可能有點用。

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
24 [報告]
發(fā)表于 2005-01-10 23:53 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

openssl簡介-指令speed
用法:
   
    openssl speed [-elapsed] [md2] [mdc2] [md5] [hmac] [sha1] [rmd160]
   
     [idea-cbc] [rc2-cbc] [rc5-cbc] [bf-cbc] [des-cbc] [des-ede3]
   
     [rc4] [rsa512] [rsa1024] [rsa2048] [rsa4096] [dsa512]
   
     [dsa1024] [dsa2048] [idea] [rc2] [des] [rsa] [blowfish]
   
     說明:
    算法在你的機器上的測試工具。

   
    OPTIONS
    -elapsed
    set了這個option將使測試結(jié)果是我們比較容易懂的時間格式,否則將是和time指令那樣子顯示的cpu時間。
    其他的option都是算法了。

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
25 [報告]
發(fā)表于 2005-01-10 23:53 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

openssl簡介-指令version
用法:
   
    openssl version [-a] [-v] [-b] [-o] [-f] [-p]
   
   
    說明:
    用來打印版本信息的。最沒用的指令和最簡單的指令。

   
    OPTIONS
    -a
    打印所有信息, 相當于把其他option全set起來。
    當你向openssl官方站點報bug的時候,需要把這個指令列出來的東西也告訴他們
    -v
    打印當前openssl的版本信息。
    -b
    打印當前版本的openssl是什么時候弄出來的
    -o
    建立庫的時候的各種于加密算法和機器字節(jié)有關(guān)的信息。
    -c
    編譯時候的編譯其的參數(shù)
    -p
    平臺信息

論壇徽章:
1
榮譽版主
日期:2011-11-23 16:44:17
26 [報告]
發(fā)表于 2005-01-10 23:54 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

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]
   
   
    說明:
    本指令是一個功能很豐富的證書處理工具。可以用來顯示證書的內(nèi)容,轉(zhuǎn)換其格式,給CSR簽名等等。由于功能太多,我們按功能分成幾部分來講。

    輸入,輸出等一些一般性的option
    -inform DER|PEM|NET
    指定輸入文件的格式。
    -outform DER|PEM|NET
    指定輸出文件格式
    -in filename
    指定輸入文件名
    -out filename
    指定輸出文件名
    -md2|-md5|-sha1|-mdc2
    指定使用的哈希算法。缺省的是MD5于打印有關(guān)的option
    -text
    用文本方式詳細打印出該證書的所有細節(jié)。
    -noout
    不打印出請求的編碼版本信息。
    -modulus
    打印出公共密鑰的系數(shù)值。沒研究過RSA就別用這個了。
    -serial
    打印出證書的系列號。
    -hash
    把證書的擁有者名稱的哈希值給打印出來。
    -subject
    打印出證書擁有者的名字。
    -issuer
    打印證書頒發(fā)者名字。
    -nameopt option
    指定用什么格式打印上倆個option的輸出。
    后面有詳細的介紹。
    -email
    如果有,打印出證書申請者的email地址
    -startdate
    打印證書的起始有效時間
    -enddate
    打印證書的到期時間
    -dates
    把上倆個option都給打印出來
    -fingerprint
    打印DER格式的證書的DER版本信息。
    -C
    用C代碼風格打印結(jié)果。
    與證書信任有關(guān)的option
    一個可以信任的證書的就是一個普通證書,但有一些附加項指定其可以用于哪些用途和不可以用于哪些用途, 該證書還應該有一個"別名"。
    一般來說驗證一個證書的合法性的時候,相關(guān)的證書鏈上至少有一個證書必須是一個可以信任的證書。缺省的認為如果該證書鏈上的Root CA的證書可以信任,那么整條鏈上其他證書都可以用于任何用途。
    以下的幾個option只用來驗證Root CA的證書。CA在頒發(fā)證書的時候可以控制該證書的用途,比如頒發(fā)可以用于SSL client而不能用于SSL server的證書。
    -trustout
    打印出可以信任的證書。
    -setalias arg
    設置證書別名。比如你可以把一個證書叫"fordesign's certificate", 那么以后就可以使用這個別名來引用這個證書。
    -alias
    打印證書別名。
   -clrtrust
   清除證書附加項里所有有關(guān)用途允許的內(nèi)容。
   -clrreject
   清除證書附加項里所有有關(guān)用途禁止的內(nèi)容。
   -addtrust arg
   添加證書附加項里所有有關(guān)用途允許的內(nèi)容。
   -addreject arg
   添加證書附加項里所有有關(guān)用途禁止的內(nèi)容。
   -purpose
   打印出證書附加項里所有有關(guān)用途允許和用途禁止的內(nèi)容。
   
與簽名有關(guān)的otpion
    本指令可以用來處理CSR和給證書簽名,就象一個CA
    -signkey filename
    使用這個option同時必須提供私有密鑰文件。這樣把輸入的文件變成字簽名的證書。
    如果輸入的文件是一個證書,那么它的頒發(fā)者會被set成其擁有者.其他相關(guān)的項也會被改成符合自簽名特征的證書項。
    如果輸入的文件是CSR, 那么就生成自簽名文件。
    -clrext
    把證書的擴展項刪除。
    -keyform PEM|DER
    指定使用的私有密鑰文件格式。
    -days arg
    指定證書的有效時間長短。缺省為30天。
    -x509toreq
    把一個證書轉(zhuǎn)化成CSR.用-signkey指定私有密鑰文件
    -req
    缺省的認為輸入文件是證書文件,set了這個option說明輸入文件是CSR.
    -CA filename
    指定簽名用的CA的證書文件名。
    -CAkey filename
    指定CA私有密鑰文件。如果這個option沒有參數(shù)輸入,那么缺省認為私有密鑰在CA證書文件里有。
    -CAserial filename
    指定CA的證書系列號文件。證書系列號文件在前面介紹過,這里不重復了。
    -CAcreateserial filename
    如果沒有CA系列號文件,那么本option將生成一個。
    -extfile filename
    指定包含證書擴展項的文件名。如果沒有,那么生成的證書將沒有任何擴展項。
    -extensions section
   指定文件中包含要增加的擴展項的section
    上面?zhèn)z個option有點難明白是吧?后面有舉例。
    與名字有關(guān)的option.這些option決定證書擁有者/頒發(fā)者的打印方式。缺省方式是印在一行中。
    這里有必要解釋一下這個證書擁有者/頒發(fā)者是什么回事。它不是我們常識里的一個名字,而是一個結(jié)構(gòu),包含很多字段。
    英文分別叫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后面的參數(shù)就是決定打印的方式,其參數(shù)有以下可選:
    compat
    使用以前版本的格式,等于沒有設置任何以下option
    RFC2253
    使用RFC2253規(guī)定的格式。
    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
    舉例時間:
    打印出證書的內(nèi)容:
    openssl x509 -in cert.pem -noout -text
    打印出證書的系列號
    openssl x509 -in cert.pem -noout -serial
    打印出證書的擁有者名字
    openssl x509 -in cert.pem -noout -subject
    以RFC2253規(guī)定的格式打印出證書的擁有者名字
    openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
    在支持UTF8的終端一行過打印出證書的擁有者名字
    openssl x509 -in cert.pem -noout -subject -nameopt oneline -nameopt -escmsb
    打印出證書的MD5特征參數(shù)
    openssl x509 -in cert.pem -noout -fingerprint
    打印出證書的SHA特征參數(shù)
    openssl x509 -sha1 -in cert.pem -noout -fingerprint
    把PEM格式的證書轉(zhuǎn)化成DER格式
    openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
    把一個證書轉(zhuǎn)化成CSR
    openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
    給一個CSR進行處理,頒發(fā)字簽名證書,增加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
    把某證書轉(zhuǎn)化成用于SSL client可信任證書, 增加別名alias
    openssl x509 -in cert.pem -addtrust sslclient -alias "Steve's Class 1 CA" -out trust.pem
    上面有很多地方涉及到證書擴展/證書用途,這里解釋一下:
   我們知道一個證書是包含很多內(nèi)容的,除了基本的那幾個之外,還有很多擴展的項。比如證書用途,其實也只是證書擴展項中的一個。
    我們來看看一個CA證書的內(nèi)容:
    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。如果這個字段沒有,那么會根據(jù)其他內(nèi)容決定該證書是否可以做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指令在轉(zhuǎn)化證書成CSR的時候沒有辦法把證書里的擴展項轉(zhuǎn)化過去給CSR簽名做證書的時候,如果使用了多個option,應該自己保證這些option沒有沖突。

論壇徽章:
0
27 [報告]
發(fā)表于 2005-01-11 13:00 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

好鐵!

論壇徽章:
0
28 [報告]
發(fā)表于 2005-01-13 18:49 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

你也太酷了!把翻譯工作都作了。!

論壇徽章:
0
29 [報告]
發(fā)表于 2005-01-17 20:16 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

我已經(jīng)陣亡了 ,兄弟你好牛

論壇徽章:
0
30 [報告]
發(fā)表于 2005-01-18 10:12 |只看該作者

openssl的man中文文檔(轉(zhuǎn))

JJ好棒哦...
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP