Go中的客户端/服务器TLS身份验证

时间:2017-12-09 23:48:54

标签: ssl go tls1.2

通过Go中的TLS / Certs / Keys获取TCP客户端/服务器身份验证的最简单方法是什么?

也就是说,我有一个TCP服务器,当新客户端尝试连接到它时,它应该从服务器接收证书/密钥,以便将来再次连接而无需重新进行身份验证(或至少直到证书到期)。客户端和服务器都应该对另一个进行身份验证。 OpenSSL不是创建密钥的选项,因为客户端将跨平台(Windows / macOS / Linux)。本质上,服务器应该只接受来自已知客户端的连接,并根据需要授权新客户端(客户端在安装时可以拥有某种已知秘密)。

这就是我认为的一般流程(如果我错了,请纠正我)

服务器:获取证书/密钥对 - >如果它们不存在,请创建它们 - >听取端口 - >接收连接 - >验证证书有效 - >如果没有,拒绝 - >如果是,继续做服务器应该做的事情

客户:获取证书/密钥对 - >如果它们不存在(即刚安装),请求服务器(由服务器签名) - >继续正常连接

这仍处于规划阶段,并对所有建议开放!

谢谢!

0 个答案:

没有答案