在Java中使用openssl制作的双向认证


一 创建根证书
1 生成根证书私钥
openssl genrsa -des3 -out root.key 1024

密码为:handwin1

2 生成根证书签名请求文件
openssl req -new -out root-req.csr -key root.key -keyform PEM

3 自签根证书
openssl x509 -req -in root-req.csr -out root-cert.cer -signkey root.key -CAcreateserial -days 7300

4 导出p12格式证书
openssl pkcs12 -export -clcerts -in root-cert.cer -inkey root.key -out root.p12



二 创建服务端证书
1.生成服务端key
openssl genrsa -des3 -out server-key.key 1024

2.生成服务端请求文件

openssl req -new -out server-req.csr -key server-key.key

3.生成服务端证书(root证书,rootkey,客户端key,客户端请求文件这4个生成客户端证书)
openssl x509 -req -in server-req.csr -out server-cert.cer -signkey server-key.key -CA root-cert.cer -CAkey root.key -CAcreateserial -days 7300

4.生成服务端p12格式根证书
openssl pkcs12 -export -clcerts -in server-cert.cer -inkey server-key.key -out server.p12


三 创建客户端证书
1.生成客户端key
openssl genrsa -des3 -out client-key.key 1024


2.生成客户端请求文件

openssl req -new -out client-req.csr -key client-key.key

3.生成客户端证书(root证书,rootkey,客户端key,客户端请求文件这4个生成客户端证书)
openssl x509 -req -in client-req.csr -out client-cert.cer -signkey client-key.key -CA root-cert.cer -CAkey root.key -CAcreateserial -days 7300

4.生成客户端p12格式根证书

openssl pkcs12 -export -clcerts -in client-cert.cer -inkey client-key.key -out client.p12



四:Java项目使用

4.1   服务端使用

trustStore使用root.p12,keyStroe使用server.p12

同时设置:

        sslEngine.setUseClientMode(false);
        sslEngine.setNeedClientAuth(true);//启动对客户端证书的校验


4.2 客户端使用

trustStore使用root.p12,keyStore使用client.p12
        sslEngine.setUseClientMode(true);


说明: 根证书作为CA,用来验证对方发送的签名是否正确。如果不对签名进行验证,则不需要根证书放到trustStore中.

  

openssl双向认证是一种安全机制,通过该机制,服务器和客户端之间进行通信时,双方都需要验证对方的身份。在这种认证过程,服务器需要提供自己的证以证明自己的身份,而客户端也需要提供自己的证以验证自己的身份。这样一来,双方可以在通信过程确保对方的身份是可信的,从而保障通信的安全性。 要使用openssl双向认证,首先需要生成服务器和客户端的证。服务器证可以通过自签名或者向CA机构申请签发获得,而客户端证通常是由服务器发放给客户端的。然后,服务器和客户端需要对证进行配置和安装,以便在通信过程能够进行正确的认证。 在进行通信时,服务器和客户端会相互交换证,并且进行验证。服务器会验证客户端的证,以确认其身份的有效性,并决定是否接受通信请求。同样地,客户端也会验证服务器的证,以确保其身份的合法性。只有在双方都通过了对方的验证后,通信才会正常进行。这样一来,即使遭遇了网络攻击或者间人攻击,双方也可以通过证认证来确保通信的安全性。 通过openssl双向认证,可以有效防止伪装、仿冒和间人攻击等安全威胁,提高了通信的安全性和可靠性。这种双向认证机制广泛应用于各种网络通信场景,包括Web服务器、邮件服务器、数据库服务器等,为网络通信提供了更强的保障。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值