0

我需要什么:通过 LAN 网络在服务器和客户端之间进行安全的 TLS/SSL 通信。身份验证必须是单向身份验证:

SSL 单向认证

我已经做了什么:我创建了一个服务器和一个客户端,它们能够通过 Wi-Fi 网络进行通信。我已经实现了 SSL 套接字,但缺少身份验证......所以它不起作用:)

我需要帮助的地方:我是 TLS/SSL 以及网络安全方面的初学者。

  1. CA 是强制性的还是我可以“模仿”它?(它给服务器它的证书,对吧?)
  2. 服务器应该创建自己的证书还是我应该提供一个(硬编码)?
  3. 客户端如何验证此证书?
4

1 回答 1

1
  1. CA本身不是强制性的。CA 签名证书的替代方案是自签名证书,但除非客户端程序明确信任特定的自签名证书,否则对等方的身份验证(验证)将失败。

  2. 您应该创建或请求服务器证书,并将服务器配置为使用该证书。如何配置证书和其他 TLS 设置的详细信息取决于您使用的服务器软件或 TLS 库。

  3. 通常,客户端拥有一组受信任的根 CA 证书最终实体证书由根 CA 或由某些高级证书签名的中间CA签名,一直到根。服务器提供最终实体证书和任何中间证书的证书链,最多但(通常)不包括根证书。

    在验证过程中,客户端验证是否存在从它信任的任何根 CA向下的有效签名链。如果是这样,并且如果链中的任何证书都没有过期或撤销,则服务器证书将被接受并且会话将继续。

    公共 CA 的根证书通常在大多数浏览器和操作系统中默认安装和信任。但是您不必使用公共 CA;您可以创建私有 CA 来签署证书。如果您这样做,则需要将客户端配置为信任其根证书(详细信息因软件而异)。

    无论您使用公共 CA 还是私有 CA,只要客户端信任根 CA 并且您已将服务器配置为提供(链接的)服务器证书,一切都应该正常!

于 2015-03-12T10:04:27.573 回答