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 相关文章推荐
json 定义
Jun 10 Javascript
js使用removeChild方法动态删除div元素
Aug 01 Javascript
node.js中的emitter.on方法使用说明
Dec 10 Javascript
javascript面向对象程序设计(一)
Jan 29 Javascript
jquery中change()用法实例分析
Feb 06 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
Aug 13 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
Mar 14 Javascript
postman自定义函数实现 时间函数的思路详解
Apr 17 Javascript
vue项目中mock.js的使用及基本用法
May 22 Javascript
ES6 Generator函数的应用实例分析
Jun 26 Javascript
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 Javascript
基于iview-admin实现动态路由的示例代码
Oct 02 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
PHP 超链接 抓取实现代码
2009/06/29 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
php后台如何避免用户直接进入方法实例
2013/10/15 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
PHP微信公众号开发之微信红包实现方法分析
2017/07/14 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
Node.js学习之地址解析模块URL的使用详解
2017/09/28 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
Python求两点之间的直线距离(2种实现方法)
2019/07/07 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
Python3 读取Word文件方式
2020/02/13 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
2015年党员个人自我评价
2015/03/03 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
环保建议书作文300字
2015/09/14 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS
Python各协议下socket黏包问题原理
2022/04/12 Python