我正在编写一个客户端/服务器程序来控制客户端程序中的计算机(服务器),并希望对客户端计算机进行身份验证以了解它是否可信。我可以有很多客户端,所以我想到使用openSSL加密套接字并生成一个唯一的证书/密钥对进行身份验证。在使用scp的设置时间内将该对复制到每个服务器/客户端。 建立SSL连接时,服务器程序将询问客户端的证书并根据密钥(实际上是私钥)对其进行验证。因此,如果它们都匹配连接继续,如果不匹配则丢弃。
需要考虑的一些事项:
到目前为止似乎工作,但我有一些问题,因为我只是从这个开放的东西开始。
我的问题是:
我看过像Peer to Peer linux authentication in C这样的帖子,但没有帮助。
我现在在服务器中执行此操作的方式如下:
因此,如果SSL_CTX_check_private_key(ctx)返回0是因为私钥和证书不匹配且客户端未被授权,所以我放弃了连接。
我非常感谢您对此的看法。 如果需要更多代码,请将其粘贴到此处,但我认为可以遵循这个想法。