使用openssl进行ssl/tls加密传输会话测试
2009-04-07 18:21
513 查看
【小蜗牛嘻哈之作
】
我们首先看看下面一段“对话”:
[root@pps ~]# openssl s_client -connect localhost:110 -starttls pop3
...
【这里是一大段有关证书、SSL/TLS会话等内容】
...
---
+OK Dovecot ready.
user snail
+OK
pass snail'password
+OK Logged in.
list
+OK 6 messages:
1 1731
2 43178
3 1727
4 43183
5 43217
6 43171
.
quit
+OK Logging out.
closed
[root@pps ~]#
这样的会话情况,是和"telnet localhost 110"进行POP3会话情况是一样的,而这里和telnet不一样的是,整个会话过程所传输的信息都是加密的。如上示例,我的机器上(localhost)需要开启POP3服务,并且POP3服务支持SSL/TLS加密传输。(我用的是Dovecot做的POP3/IMAP服务器)
参数说明:
s_client 用作一个普通的SSL/TLS会话的客户端
-starttls prot 在开始TLS传输之前使用STARTTLS命令来使得相关协议(prot)支持它。
我使用的openssl(0.9.8b)版本只支持smtp和pop3协议。
更新的版本应该支持imap协议。
如果没有指定"--starttls pop3",则出现POP3不支持SSL/TLS会话的现象:
[root@pps ~]# openssl s_client -connect localhost:110
CONNECTED(00000003)
2730:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:567:
如果某个服务器某端口“一开始”就支持SSL/TLS会话了,那就没有必要"--starttls"了。如果POP3S服务在默认的993端口监听着的话,就不必那么费劲使用"--starttls"了:
[root@pps ~]# openssl s_client -connect localhost:993
...
---
* OK Dovecot ready.
...
下面我再举个简单的例子。我使用两个终端,在一个终端运行以下命令:
[root@pps ~]# openssl s_server -accept 2009 -key server.pem -cert server.pem
Using default temp DH parameters
ACCEPT
参数解释:
s_server 用作一个普通的SSL/TLS会话的服务器端
-accept port 监听的端口
-cert arg 使用的证书(默认是server.pem)
-key arg 使用的密钥(默认是server.pem)
我这里使用的server.pem是随便生成的,证书和密钥都同在server.pem文件里。
然后我在另外一个终端运行命令如下:
[root@pps ~]# openssl s_client -connect localhost:2009
...
【这里是一大段有关证书、SSL/TLS会话等内容】
...
---
这个时候,在服务器端(s_server)也会出现SSL-Session相关信息。
好,我在客户端(s_client)这边输入"Hello, I'm a client.",回车,我们可以看到在服务器端可以立刻显示出来我输入的内容,在服务器端输入"Hello, I'm the server.",也可以立刻在客户端看到服务器输入的内容,最后我在服务端输入"quit"结束会话。而整个会话传输过程,都是加密的,只有在两端才是解密的明文内容。
【注意】如果双方在会话过程中,第三方客户端连接将被阻塞。
------------------------------------------------------------------------------------------
赵小蜗牛
QQ: 755721501
E-mail: [email]snailwarrior@qq.com[/email]
在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!
】
我们首先看看下面一段“对话”:
[root@pps ~]# openssl s_client -connect localhost:110 -starttls pop3
...
【这里是一大段有关证书、SSL/TLS会话等内容】
...
---
+OK Dovecot ready.
user snail
+OK
pass snail'password
+OK Logged in.
list
+OK 6 messages:
1 1731
2 43178
3 1727
4 43183
5 43217
6 43171
.
quit
+OK Logging out.
closed
[root@pps ~]#
这样的会话情况,是和"telnet localhost 110"进行POP3会话情况是一样的,而这里和telnet不一样的是,整个会话过程所传输的信息都是加密的。如上示例,我的机器上(localhost)需要开启POP3服务,并且POP3服务支持SSL/TLS加密传输。(我用的是Dovecot做的POP3/IMAP服务器)
参数说明:
s_client 用作一个普通的SSL/TLS会话的客户端
-starttls prot 在开始TLS传输之前使用STARTTLS命令来使得相关协议(prot)支持它。
我使用的openssl(0.9.8b)版本只支持smtp和pop3协议。
更新的版本应该支持imap协议。
如果没有指定"--starttls pop3",则出现POP3不支持SSL/TLS会话的现象:
[root@pps ~]# openssl s_client -connect localhost:110
CONNECTED(00000003)
2730:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:567:
如果某个服务器某端口“一开始”就支持SSL/TLS会话了,那就没有必要"--starttls"了。如果POP3S服务在默认的993端口监听着的话,就不必那么费劲使用"--starttls"了:
[root@pps ~]# openssl s_client -connect localhost:993
...
---
* OK Dovecot ready.
...
下面我再举个简单的例子。我使用两个终端,在一个终端运行以下命令:
[root@pps ~]# openssl s_server -accept 2009 -key server.pem -cert server.pem
Using default temp DH parameters
ACCEPT
参数解释:
s_server 用作一个普通的SSL/TLS会话的服务器端
-accept port 监听的端口
-cert arg 使用的证书(默认是server.pem)
-key arg 使用的密钥(默认是server.pem)
我这里使用的server.pem是随便生成的,证书和密钥都同在server.pem文件里。
然后我在另外一个终端运行命令如下:
[root@pps ~]# openssl s_client -connect localhost:2009
...
【这里是一大段有关证书、SSL/TLS会话等内容】
...
---
这个时候,在服务器端(s_server)也会出现SSL-Session相关信息。
好,我在客户端(s_client)这边输入"Hello, I'm a client.",回车,我们可以看到在服务器端可以立刻显示出来我输入的内容,在服务器端输入"Hello, I'm the server.",也可以立刻在客户端看到服务器输入的内容,最后我在服务端输入"quit"结束会话。而整个会话传输过程,都是加密的,只有在两端才是解密的明文内容。
【注意】如果双方在会话过程中,第三方客户端连接将被阻塞。
------------------------------------------------------------------------------------------
赵小蜗牛
QQ: 755721501
E-mail: [email]snailwarrior@qq.com[/email]
在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!
相关文章推荐
- Chapter 1 Securing Your Server and Network(5):使用SSL加密会话
- Chapter 1 Securing Your Server and Network(5):使用SSL加密会话
- 使用C语言,对OpenSSL命令行加密的文件进行解密
- CA加密,网络安全HTTPS SSL-安全传输协议SSL和TLS及WTLS的原理
- 通过Openssl提供FTP+SSL/TLS认证功能,并实现安全数据传输
- 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)
- 使用 OpenSSL 对文件进行加密和解密
- Mosquito使用SSL/TLS进行安全通信时的使用方法 ------生成和发布证书openssl
- 使用openssl中的EVP通用加密算法接口之--加密测试例子
- 使用Java Base64解密算对openssl的base64加密字符串进行解密
- 使用wireshark对TLS加密的数据进行实时的解密
- 利用OpenSSL库对Socket传输进行安全加密
- CA加密,网络安全HTTPS SSL-安全传输协议SSL和TLS及WTLS的原理
- Android在NDK层使用OpenSSL进行RSA加密
- 在tomcat中测试ssl的时候使用openssl,需要生成一个客户端证书
- 分享如何使用PHP将URL地址参数进行加密传输提高网站安全性
- 配置 OpenLDAP 使用 SSL/TLS 加密数据通信
- 如何在 CentOS 7 中使用 SSL/TLS 加固 FTP 服务器进行安全文件传输
- 使用openssl进行RSA加密解密
- C语言使用openssl库进行加密