我编写了简单的 C 程序,它们使用套接字(“客户端”和“服务器”)。 (UNIX/Linux 使用)
服务器端简单地创建一个套接字:
sockfd = socket(AF_INET, SOCK_STREAM, 0);
然后将其绑定到 sockaddr:
bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr));
并聆听(并接受并阅读):
listen(sockfd,5);
newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
read(newsockfd,buffer,255);
客户端创建套接字,然后写入它。
现在,我想将这个简单的连接转换为 SSL 连接,以最简单、最田园、最整洁、最快捷的方式。
我试图将 OpenSSL 添加到我的项目中,但我找不到一种简单的方法来实现我想要的。
原文由 David Mape 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 OpenSSL 有几个步骤。您必须制作一个 SSL 证书,该证书可以包含带有私钥的证书,请务必指定证书的确切位置(本示例将其放在根目录中)。那里有很多很好的教程。
一些包括:
您将需要初始化 OpenSSL:
现在为大部分功能。您可能想在连接上添加一个 while 循环。
然后,您可以使用以下方式读取或写入:
更新
SSL_CTX_new
应该使用最适合您需要的 TLS 方法调用,以支持较新版本的安全性,而不是SSLv23_server_method()
。请参阅: OpenSSL SSL_CTX_new 描述