【发布时间】:2017-10-24 06:35:24
【问题描述】:
LDAPServer 和 LDAPClient,客户端和服务器正在使用 TLS 相互连接并且工作正常,但是我有一些用例可以仅停止 TLS 连接并使用相同的 TCP 连接与 LDAPserver 进行通信
在我的 ldapperl 客户端代码下面只停止 TLS 连接,
my $socket = $ldapSrvr->socket();
print $socket;
print "\n";
my $host = $ldapSrvr->host();
print $host;
print "\n";
my $ssl = ${*$socket}{'_SSL_object'};
print $ssl;
print "\n";
my $s1 = Net::SSLeay::shutdown($ssl);
print "s1 : $s1";
print "\n";
my $s2 = Net::SSLeay::shutdown($ssl);
print "SSL socket is shutdown : $s2";
print "\n";
${*$socket}{'_SSL_opened'} = 0;
my $t = &Net::SSLeay::clear(${*$socket}{'_SSL_object'});
&Net::SSLeay::print_errs();
untie(*$socket);
和服务器端停止唯一的 tls 连接。
LOG("SSLConnection::disconnect");
boost::system::error_code ec;
m_sslSocket.shutdown(ec);
LOG("[Comms] errorcode while SSLshutdown : ",ec);
LOG("[Comms] SSL socket is closed");
但它也在关闭 TCP 连接。 当客户端向服务器发送 sslconnection 关闭请求时,服务器正在向客户端发送 FIN ACK 并且 TCP 连接正在关闭。 有人能告诉我为什么会这样吗
【问题讨论】:
-
'一些用例',例如什么?为什么在建立了安全连接之后你会想要失去这种安全性?
标签: ssl boost tcp boost-asio