CA双向认证完整实现步骤(附java客户端代码)

本文详细介绍了CA双向认证的实现步骤,包括基础概念如系统安全管理、PKI、CA和HTTPS,以及单向和双向认证。重点讲述了自签发证书的创建、Nginx的安装配置、客户端证书的生成。最后,提供了java客户端进行认证的代码示例,帮助读者理解并实现在java应用中进行CA双向认证。
摘要由CSDN通过智能技术生成

一、基础概念

注:以下概念除专业名词外,均为个人理解,不具备权威性。

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、环境

本次技术调研过程全程都在自己的电脑上,采用物理机加虚拟机的方式:
物理机:win8+ie
虚拟机:redhat6.4+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.gz
2.2.2、配置

进入解压后目录

./configure
2.2.3、编译
make
2.2.4、安装
make install

2.3、安装nginx

2.3.1、解压
tar -zxvf nginx-1.12.2.tar.gz
2.3.2、配置

进入解压后的文件夹配置,这里需要注意的是,使用参数排除了pcre和zlib,同时指定了openssl的安装目录,并指定安装ssl模块

./configure --without-http_rewrite_module --without-http_gzip_module  --with-http_ssl_module --with-openssl=/home/tuzongxun/openssl/openssl-1.0.0a
2.3.3、编译
make
2.3.4、安装
make install

安装后会看到/usr/local目录中多了一个nginx目录

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值