捕风之巢

统计

留言簿(3)

java友情链接

阅读排行榜

评论排行榜

openssl简介(二十二)--指令s_server

 

二十二.     指令 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 2006-10-17 15:47 捕风 阅读(693) 评论(0)  编辑  收藏 所属分类: java安全


只有注册用户登录后才能发表评论。


网站导航: