ssl - 如何在 SSL 连接的服务器端接收数据?

标签 ssl openssl server client

我正在尝试学习如何编写客户端/服务器应用程序以使用 SSL 将文件传输到服务器或从服务器传输文件。我主要是在 C++ 中使用 cURL 和/或 OpenSSL 弄清楚了客户端,但我在服务器端被难住了......我有使用 Perl 和其他 cgi-bin 类型脚本的经验,但我无法查找有关如何在服务器端实际接收数据的任何教程,仅与证书和身份验证有关。任何帮助将不胜感激!

最佳答案

您想使用 BIO_s_accept() 函数族来接受 SSL 连接(示例代码:https://www.openssl.org/docs/manmaster/crypto/BIO_set_bind_mode.html)。您希望 BIO_set_accept_bios() 对新连接使用相同的包装器,并希望 BIO_set_bind_mode() 继续监听同一端口上的更多连接。

然后您调用 connection = BIO_pop(accept); 来获取代表每个连接的 BIO,您可以将其用于输入和输出。 BIO_free() 完成后。

编辑:对于实际的、真实世界的使用,请使用 scp 而不是重新发明轮子。

关于ssl - 如何在 SSL 连接的服务器端接收数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32802304/

相关文章:

javascript - 通过 .htaccess 强制 https,并使用 fetch 生成一个 post http url 异常

linux - 我们可以将公钥和私钥放在同一个authorized_keys中吗

java - 使用 OpenSSL (RSA-2048 Public-/Private-Key) 解密已非对称加密 (AES-256) 的 Java 文件

apache - 我如何知道是否为通配符设置了 SSL 证书

openssl - TLS/SSL 中的消息完整性

security - 将 SSL 传输到同一域 IIS7 的新服务器

用于验证来自私有(private) CA 的证书的客户端程序?

java - 使用 Https 连接到 REST 服务时,Spring MVC 拒绝连接

firefox - 使用相同的自签名 CA 编码多个证书?

java - 如何在 AkkaSSLConfig 中设置 HostnameVerifierClass