搭建私有CA与基于OpenSSL的双向身份认证
0x00 前言
互联网上的Web应用由于用户数目广泛,都是采用单向身份认证的,只需要客户端验证服务端的身份。但如果是企业内部的应用对接,客户端数量有限,可能就会要求对客户端也做身份验证,这时就需要一个双向认证方案。本文通过搭建私有CA,利用OpenSSL工具,实现服务端与客户端的双向身份认证。安全协议采用HTTPS,这里用到的HTTPS除了能够进行身份认证以外,还能保证通信的保密性和完整性。
0x01 组建方案
组建方案如下图所示:
- 整个方案包括一个私有CA、一个服务端、一个客户端,用于验证HTTPS双向身份认证的可行性。
- 服务端的系统环境为CentOS7,Web服务器采用Tomcat7。客户端的系统环境为Windows,浏览器采用Firefox。
- 由私有CA负责生成所有的私钥、证书等文件,并通过线下安全途径分发到服务端和客户端。
- 其中,CA的私钥最为重要需加密后离线保管;服务端持有CA证书、服务器私钥、服务器证书3个文件;客户端持有CA证书、客户端私钥、客户端证书3个文件。
- 客户端与服务端通过HTTPS安全协议进行双向身份认证、加密传输。另外,需要注意的是,HTTPS实现的是传输层的身份认证,不含应用层鉴权功能。