2

对于基于 X.509 证书的身份验证,OpenSSL 中是否有 SSL_set_connect_state()/SSL_set_accept_state() 的替代方法?

问题是在我的应用程序中,客户端和服务器不使用套接字进行通信,并且无法在它们之间建立直接连接。因此,我想要从 OpenSSL 中“公开”中间 SSL 上下文建立消息,然后我会将这些消息传达给另一端的一方。

谢谢你的帮助!

4

2 回答 2

2

OpenSSLBIO接口可用于此。

  1. 用于BIO_new_bio_pair()创建连接的 BIO 对。一个 BIO 将由 SSL 例程读取和写入,另一个 BIO 将由您的应用程序读取和写入(允许它通过所需的任何方法将数据传递到另一端)。

  2. 在新的 SSL 对象上使用SSL_set_bio()以将读取和写入 BIO 设置为生成的对中的一个 BIO。

  3. 在对中的另一个 BIO 上使用BIO_read()和读取和写入 SSL 协议数据。BIO_write()

  4. 在 SSL 对象上正常使用、SSL_accept()SSL_connect()SSL_read()SSL_write()

于 2010-03-25T00:47:04.177 回答
0

是的,您可以使用与 SSL 套接字层相同的 X.509 验证例程。

http://openssl.org/docs/crypto/x509.html

这里的文档似乎有点缺乏......(你会认为他们已经为 1.0 完成了这一切)。我不能说我对库的这方面很熟悉,但是 openssl 带有一个命令行 x509 验证工具。您应该能够查看它的源代码以了解如何执行此操作。

http://openssl.org/docs/apps/verify.html

于 2010-03-30T03:29:44.923 回答