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