基于证书登录 SoftEther VPN 涉及哪些步骤?
注意,我将很快发送一个答案,如果有任何遗漏,请随时编辑,而不是仅仅评论它是错误的。
对于基于证书的登录工作(也称为公钥基础设施或 PKI), 当然,首先我们需要向用户提供一个证书,步骤类似于:
证书生成:首先,您需要为将连接到 VPN 服务器的每个用户或客户端生成一个证书。这通常涉及为用户创建公钥-私钥对。
证书签名请求(CSR):那么无论是由用户还是由 我们服务器的源代码,有人需要使用最后一步创建的 CSR 生成 私钥。此 CSR 应包含用户的相关信息,例如 身份(可能是电子邮件和/或姓名)和步骤 1 创建的公钥。
证书颁发机构 (CA) 签名:然后将 CSR 发送到 用于签名的证书颁发机构 (CA)。 CA 验证身份 用户并使用 CA 的私钥签署 CSR,创建数字证书,以及 创建的证书二进制文件包含所述用户相关信息的副本。
下载证书:第一次,客户端需要以某种方式获取两者 所说的私钥和相关的证书二进制文件,如果 用户受到中间人攻击,因此我建议步骤 1 和 2 都发生在 客户端和服务器端应该处理第 3 步(也许通过验证电子邮件)。
证书安装:一旦我们从CA获得了证书,就可以了 与相应的私钥一起安装在用户的设备上,但是 客户端应用程序可以跳过此部分并仅将所述证书二进制文件用于自身。
注意上述步骤3可能需要自己的CA模拟,因为不太可能 第三方 CA 会知道如何验证我们的 CSR,并表示模拟是 可以使用 OpenSSL 库,但我不知道 SoftEther-server 是否有 GUI。这 CA 模拟和/或自签名的手动方式如下所述: https://www.javaxt.com/wiki/Tutorials/Windows/How_to_Enable_LDAPS_in_Active_Directory
完成这一切后,就可以开始握手过程了,其步骤类似于:
VPN 连接:当用户的客户端应用程序尝试连接到 SoftEther-VPN 的服务器应用程序时,服务器会请求客户端的证书以进行身份验证。
证书认证:客户端将所述证书-binay发送到 服务器。服务器通过检查证书是否真实来验证证书的真实性 由受信任的 CA 签名,并且尚未过期或被撤销。
建立VPN隧道:如果服务器验证成功 客户端的证书,它允许客户端建立 VPN 隧道。在这个 作为握手过程的一部分,服务器告知加密参数和 数据交换到客户端,并且客户端可能会被踢出,如果 客户端不支持所需的加密算法。
最后,一旦建立了 VPN 隧道,客户端和服务器之间的所有通信都将使用握手过程中建立的密钥进行加密。