gpt4 book ai didi

c++ - 使 OpenSSL 服务器只接受来自已经拥有服务器公共(public)证书的客户端的连接

转载 作者:行者123 更新时间:2023-11-28 04:28:44 28 4
gpt4 key购买 nike

我仍在学习使用 OpenSSL 在 C++ 中进行编程,并尝试在客户端启动与服务器的连接的地方构建和应用程序。我有

  1. 使用 OpenSSL(如 .pem)生成证书/ key 对
  2. 在服务器初始化时调用了SSL_use_certificate_file/PrivateKey_file
  3. 将服务器的证书存储在客户端,并在尝试连接到服务器时在客户端验证证书

我注意到,即使我向客户端传递了不正确的证书并且(正确地)失败了 3.,连接仍然通过,并且客户端和服务器继续执行它们最初应该执行的操作。

我想问的是,

  1. 我使用证书的方式有问题吗?
  2. 如果客户端没有服务器的证书,我怎样才能使连接失败?

最佳答案

您似乎有设计缺陷。

服务器证书的要点是保护客户端。如果您控制客户端,您应该使用(检测到的)失败来中止客户端的连接。

如果您控制客户端,但需要信任它,则需要使用客户端 证书。这些不太常见,但在 HTTPS 的 SSL/TLS 协议(protocol)中绝对允许。客户端证书的效果是相反的:当服务器检测到客户端证书出现故障时,服务器可以断开连接。

关于c++ - 使 OpenSSL 服务器只接受来自已经拥有服务器公共(public)证书的客户端的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53560811/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com