零全零美(www.zzgwt.com)
          生活中的很多事情,并不像If...Else那么簡單!
          posts - 96,comments - 52,trackbacks - 0
          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是反義詞, 模擬一個實現了SSL的server.

             
             
              OPTIONS
              -accept port
              監聽的TCP端口。缺省為4433.
              -context id
              設置SSL context的id, 可以設置為任何值。SSL context是什么?編程的章節會詳細介紹的。你也可以不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參數文件名。如果沒有set, 那么server會試圖去從證書文件里面獲得這些參數。如果證書里面沒有這么參數,一些hard code的參數就被調用。
              -nodhe
              禁止使用基于EDH的cipher.
              -no_tmp_rsa
              現在的出口cipher有時會使用臨時RSA密鑰。那就是說每次對話的時候臨時生成密鑰對。本optio就是用來禁止這種情況的。
              -verify depth, -Verify depth
              意義和s_client的這個option一樣,但同時表示必須驗證client的證書。不記得server對client的證書驗證是可以選的嗎?-verify表示向client要求證書,但client還是可以選擇不發送證書,-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意義相同。
              下面倆個指令模擬一個簡單的http server.
              -www
              當client連接上來的時候,發回一個網頁,內容就是SSL握手的一些內容。
              -WWW
              用來把具體某個文件當網頁發回給client的請求。比如client的URL請求是 https://myhost/page.html ,就把 ./page.html發回給client.如果沒有set -www, -WWW這倆個option, 當一個ssl client連接上來的話它所發過來的任何東西都會顯示出來,你在終端輸入的任何東西都會發回 給client.你可以通過在終端輸入的行的第一個字母控制一些行為
              q:
              中斷當前連接,但不關閉server.
              Q
              中斷當前連接,退出程序。
              r
              進行renegotiate行為。
              R
              進行renegotiate行為, 并且要求client的證書 。
              P
              在TCP層直接送一些明文。這會使client認為我們沒有按協議的游戲規則進行通信而斷開連接。
              S
              打印出session-cache的狀態信息。session-cache在編程章節會詳細介紹。
              NOTES
              用于調試ssl client.
              下一條指令用來模擬一個小的http server, 監聽443端口。
              openssl s_server -accept 443 -www
              session的參數可以用sess_id指令打印。
              我對這條指令實在沒有興趣,一般使用openssl都是用做server, 沒有機會調試client.我甚至沒有用過這個指令。
          posted on 2009-11-27 17:44 零全零美 閱讀(1353) 評論(0)  編輯  收藏 所屬分類: 安全相關
          主站蜘蛛池模板: 甘南县| 陇川县| 房山区| 班玛县| 怀仁县| 武夷山市| 阿坝县| 疏附县| 土默特右旗| 宜川县| 中宁县| 钦州市| 崇州市| 汕尾市| 缙云县| 应用必备| 礼泉县| 固镇县| 宜兰县| 崇义县| 东丽区| 肥东县| 永登县| 靖宇县| 营山县| 长治县| 枝江市| 视频| 汝南县| 资中县| 吐鲁番市| 将乐县| 五华县| 安阳县| 平果县| 尤溪县| 泗洪县| 莎车县| 米易县| 吕梁市| 舟曲县|