最近有个需求,本来一套内网的 WEB 系统准备上云,系统内信息敏感,需要禁止员工在未被允许的设备登录.这两个需求就有一点矛盾了.
设想
我一开始是想过公司内网+加一个中转服务器,不过还是免不了要一个本地服务器.现在我的想法是使用浏览器和 Nginx 双向 HTTPS 来保证只有安装了客户端证书的浏览器能够访问服务.证书由管理人员来安装.
疑问
今天着手验证,但是涉及到签发各种 CA 证书 C/S 证书,都是第一次弄,耽误了一些时间做了一半就下班回家了,想了一下还是问一下大佬们:
- 这种方案是否可行?
- XHR 请求能处理客户端证书的问题吗?
今天搞证书搞得脑壳疼,加密相关的知识有点弱,懵懵懂懂的.真不知道 OpenSSL 这玩意我有该仔细研究一下还是 copy 命令完国外服务器事儿...
证书不是可以提出来拿到另一个设备上自己安装?
好像不行,公网仍然是暴露给第三方的,可以无密码访问,可能要建一个有密码的信道
HTTPS 当然是双向的。你说的双向是双向证书验证吧。
是双向证书验证,客户端没证书会 400 那种
我看了一下客户端证书安装设置了私钥不可导出的话,导出的时候就只能导出 ca 证书,不能作为客户端证书导入了,我也不太懂,感觉不保险的样子.
双向验证证书不需要同一个 CA 签发服务器证书。
私钥不可导出的话,哪里不保险来着?
打个比方是 MacOS,用 time machine 备份了拿到其他机器去恢复,不是照样能用。你这个感觉只能识别硬件指纹之类的然后云上入库,每次登录识别一下。参考 sslvpn 那玩意
内网环境+机器 MAC 地址白名单+IP 指定分配+员工帐号登录不就得了。
内网的公网访问加一个员工帐号登录的 2FA 动态密码就行了,默认一个用户线上最多 3 台设备,超额提醒,需在内网环境解绑。
一定程度上可以,但是实际设备上的证书也是可以导出到别的机器上的。
如果要完全不能导出,那就每个员工配一个类似 U 盾的硬件证书,最安全。
https 访问,你可以用 let encrypt,
双向认证 ,你可以自己生成一个 ca,然后签个证书,
如果对方安装了你的证书,访问的时候,浏览器就会弹出提示,让对方选择用哪个证书登陆
如果对方没有安装证书,浏览器就会报错, 啥都看不到