java客户端和nodejs服务器之间加密解密通信实践

本文详细介绍如何在Node.js和Java之间实现加密通信。通过生成和配置私钥、公钥及证书来创建HTTPS服务器,并介绍如何生成不同格式的密钥以适配Java客户端的需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java和nodejs中加密算法的名称,公钥私钥的存储形式等方法均不同,导致之间进行加密通信并不如想象方便。


1. 架设nodejs https服务器

生成私钥

openssl genrsa 2048 > key.pem

私钥的内容是-----BEGIN RSA PRIVATE KEY-----开头的一长串字符串


生成证书

openssl req -x509 -new -key key.pem > key-cert.pem

证书的内容是-----BEGIN CERTIFICATE-----开头的一长串字符串


在nodejs中使用

https.createServer(
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>key:fs.readFileSync('./key.pem'),
<span style="white-space:pre">		</span>cert:fs.readFileSync('./key-cert.pem')
<span style="white-space:pre">	</span>},
<span style="white-space:pre">	</span>function(req,res){
<span style="white-space:pre">		</span>//doing sth
<span style="white-space:pre">	</span>}
).listen(3000);


2.生成服务器和客户端公钥私钥

由于Java只能读取某些格式的秘钥,所以需要生成并转换相应格式的秘钥。

服务器端生成公钥

openssl rsa -in key.pem -pubout > public.pem

客户端生成私钥

openssl genrsa 2048 > client_key.pem

客户端生成公钥

openssl rsa -in client_key.pem -pubout > client_public.pem

openssl rsa -in key.pem -pubout > public.pem
生成Der格式的客户端公钥
openssl rsa -in client_key.pem -pubout -outform DER -out client_key.der
生成Der格式的服务器公钥
openssl rsa -in key.pem -pubout -outform DER -out public.der
生成PKCS#8格式的客户端私钥
openssl pkcs8 -topk8 -inform PEM -outform DER -in client_key.pem  -nocrypt > client_key.der

3. 客户端载入秘钥
客户端想要和服务器通信,需要自己的私钥用来生成签名,对方的公钥用来加密解密,文件为.der格式以供java读入,如client_key.der, public.der

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值