(本文参考https://blog.csdn.net/tuzongxun/article/details/88647172)
1、什么是系统安全管理
置于公网的系统,通常都需要一定的安全管理,据我个人理解,这里的安全管理主要分三个方面:
一是应用内的权限控制,比如具体应用的用户名、密码等;
二是应用数据传输过程中的安全机制,例如各种报文的加解密方案;
三是数据传输前的通讯安全机制,保证通讯双方都是可靠可信任的,PKI就是其中一个解决方案。
2、什么是PKI
PKI是 Public Key Infrastructure的简称,意思是公钥基础设施。
公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。通过证书和秘钥来确认通讯双方是否可信任。
3、什么是CA
CA是Certificate Authority的简称,即证书的签发机构,它是PKI的核心。
正常情况来说,CA是具有权威性的机构,通过CA获取证书需要给钱。
但是有的时候可能不想用CA机构的证书,又想要使用https站点,那么可能就需要自己生成证书,但是这种证书浏览器是认为不安全的,本文档后边的具体步骤即针对这种场景。
4、什么是https
https是http+ssl,通俗点说,就是采用http通讯的安全传输协议,用来保证http传输过程中数据的机密性、完整性和可靠性,ssl需要证书。
5、单向认证
网络通讯是双向的,但是安全认证不一定都是双向。大多数情况下可能都是单向的,只需要客户端确认服务端是可靠的,而服务端不管客户端是否可靠。即客户端,比如浏览器会验证服务端证书,服务端不需要客户端证书。
6、双向认证
双向认证相对于单向认证,即客户端需要确认服务端是否可信,服务端也需要确认客户端是否可信。双方都要验证对方的证书。
二、实现步骤
1、本地环境
本次技术调研过程全程都在自己的电脑上,采用物理机加虚拟机的方式:
物理机:win10+ie+Chrome
虚拟机:centeros6.8+nginx+tomcat+openssl
2、nginx安装
2.1、安装包准备
nginx安装需要依赖其他的一些组件,网上说有以下三个必要依赖:
openssl
pcre
zlib
但实际安装过程发现只有openssl是必要的,其他两个可以排除,因此实际安装时下载了两个安装包:
nginx-1.12.2.tar.gz
openssl-1.0.0a.tar.gz
2.2、安装openssl
2.2.1、解压
tar -zxvf openssl-1.0.0a.tar.g