我正在编写一个应用程序,该应用程序应确保两方之间的安全连接(称它们为客户端和服务器)。
服务器应限制哪些客户端可以使用 https 进行连接。为此,服务器将颁发一定数量的证书,当客户端尝试连接时将对其进行检查。如果客户端使用的证书不在受信任列表中,则无法建立连接。
此证书应使用某种 USB 设备分发。因此,当使用我的应用程序的客户端尝试使用 https 从服务器获取某些内容时,应用程序应该从 USB 设备读取该证书并使用它来建立 https 连接。私钥应始终在设备上保密。
到目前为止,我设法在客户端和服务器 (JKS) 上创建本地密钥库,将它们添加到彼此的受信任列表中,并使用它们来实现正确的连接。
我的问题是:客户端证书是否可以由服务器颁发并传输到客户端,以及 https 连接所需的私钥?我不希望在客户端计算机上创建任何数据或密钥库,建立 https 连接所需的一切都应该在该设备上。设备可以有一些程序和 api 来帮助这个过程并确保私钥的保密性。
任何帮助将不胜感激 :)