Node.js中.pfx后缀文件的处理方法


Posted in Javascript onMarch 10, 2017

前言

nodejs中,在做加密解密的时候,会得到第三方的各种各样的加密文件,其后缀也就那么几种吧,.key/.pem/.pfx等,是不是可以自定义,反正就是一个文件。

但是今天我看了很多的nodejs库好像也没有找到与java keytool这样的工具,因为在java里面,完全是可以读取pfx,然户进行在进行处理的,如果在nodejs中要如何操作,目前不知道,使用openssl做个转换处理先。

第一个命令是:

openssl pkcs12 -in xxxx.pfx -nocerts -nodes -out domain_encrypted.key

第二个命令是:

openssl rsa -in domain_encrypted.key -out private.key

哪位大神知道的,可以告知下,谢谢了。

==================补充=================

google上有个办法可以解析出两种格式的文件

第一种格式文件的方式

extract private key from .pfx file

# openssl pkcs12 -in myfile.pfx -nocerts -out private_key.pem -nodes
Enter Import Password:
MAC verified OK

第二种格式文件的方式

extract certificate from .pfx file

# openssl pkcs12 -in myfile.pfx -nokeys -out certificate_file.crt 
Enter Import Password:
MAC verified OK

详细的可到这里:http://tecadmin.net/extract-private-key-and-certificate-files-from-pfx-file/

==========================================

==========================================强烈补充

多日奋战,终于解决了这个问题,因为一直是一个私钥解密的问题

openssl pkcs12 -in xxxx_private.pfx -out xxxx_private.pem -nodes
openssl x509 -in xxxx_public.crt -inform der -outform pem -out xxxx_public.pem

这里主要是针对具体情况具体描述,可以变通取处理

因为对方给过来的是一个在window环境下,使用工具生成的pfx和crt文件。

经过对方给过来的生成工具的描述,这个crt文件还是一个cer后缀文件自己修改的cer->crt。可见这里如果对文件内容不了解,光从后缀来看会坑了很多人。

先来看第一行的命令语句.

经过文档的查询pfx文件是一个带有私钥跟证书的合体文件,通过上面的命令就可以得到一个文件就是private.pem,里面是一个含有证书和私钥的。

不知道的我这里举例。

私钥是以

-----BEGIN RSA PRIVATE KEY-----

开头的。

证书是以

-----BEGIN CERTIFICATE-----

开头的。对不起不方便把所有内容同时贴出来。很容易辨别的。

然后对方还会给你一个crt文件,这个事实上就是一个x509对应的证书,需要解出来,但是对于是java的应该就不需要了,不过是php的或这是node的就需要了。

当然是证书的话,就必须是以

-----BEGIN CERTIFICATE-----

开头的。

好了,如果你跟别人对接接口,遇到私钥公钥的问题,但是对方给了你pfx和crt文件的话,就按照这个命令去操作的吧,我已经在php和node环境下试过了。不过具体的算法还是要针对具体的情况来实施。

================补充================

REM export the ssl cert (normal cases)
openssl pkcs12 -in aa.pfx -out aa.pem -nokeys -clcerts

REM export the ssl cert (Crescendo load balancers)

openssl pkcs12 -in aa.pfx -out aa_tmp_cn.pem -nodes
openssl x509 -in aa_tmp_cn.pem -out aa_cn.pem -text

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
JS获取表格内指定单元格html内容的方法
Mar 31 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
js控件Kindeditor实现图片自动上传功能
Jul 20 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
Jul 07 Javascript
详解JavaScript权威指南之对象
Sep 27 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
JS+canvas绘制的动态机械表动画效果
Sep 12 Javascript
Node.js dgram模块实现UDP通信示例代码
Sep 26 Javascript
详解webpack4.x之搭建前端开发环境
Mar 28 Javascript
基于脚手架创建Vue项目实现步骤详解
Aug 03 Javascript
Vue.js结合bootstrap实现分页控件
Mar 10 #Javascript
js获取ip和地区
Mar 10 #Javascript
Vue.js bootstrap前端实现分页和排序
Mar 10 #Javascript
JavaScript组件开发之输入框加候选框
Mar 10 #Javascript
原生javascript移动端滑动banner效果
Mar 10 #Javascript
jQuery弹出窗口简单实现代码
Mar 09 #Javascript
JavaScript实现弹窗效果代码分析
Mar 09 #Javascript
You might like
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
php实现复制移动文件的方法
2015/07/29 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
puppeteer实现html截图的示例代码
2019/01/10 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
vue实现商品列表的添加删除实例讲解
2020/05/14 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
python实现拉普拉斯特征图降维示例
2019/11/25 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
localStorage的过期时间设置的方法详解
2018/11/26 HTML / CSS
纽约通行卡:The New York Pass(免费游览纽约90多个景点)
2017/07/29 全球购物
装饰资料员岗位职责
2013/12/30 职场文书
书法比赛获奖感言
2014/02/10 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
写给同事的离职感言
2015/08/04 职场文书
pytorch Dropout过拟合的操作
2021/05/27 Python
python scrapy简单模拟登录的代码分析
2021/07/21 Python
css3 文字断裂效果
2022/04/22 HTML / CSS