使用OpenSSL将现有TCP套接字转换为TLS

Convert existing TCP socket into TLS using OpenSSL

本文关键字:套接字 转换 TLS TCP OpenSSL 使用      更新时间:2023-10-16

我需要一些关于OpenSSL, TLS套接字的信息。首先,我想通过TCP上的TLS与服务器建立连接。通常首先创建一个TCP套接字,然后使用TCP套接字连接到服务器,之后(在通过TCP套接字发送或接收任何数据之前)将TCP套接字转换为TLS。

我的问题是,是否有可能按照以下方式?

  1. 创建TCP socket

  2. 使用TCP套接字连接服务器

  3. 通过TCP套接字发送和接收一些数据

  4. 将TCP套接字转换为TLS

    注意:我使用的是OpenSSL。

在服务器必须支持的情况下,这似乎是可能的。看到SMTP。它以这种方式用于SMTP服务器,其中前几个会话是纯TCP,然后是SSL/TLS。您可以使用BIO_new_socket将现有套接字绑定到BIO,然后使用SSL_set_bio将该套接字设置为SSL *结构。

您可以找到很多SSL客户端的例子