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 相关文章推荐
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
JavaScript 对象的属性和方法4种不同的类型
Mar 19 Javascript
使用jQuery获取data-的自定义属性
Nov 10 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
JavaScript实现的SHA-1加密算法完整实例
Feb 02 Javascript
JS给swf传参数的实现方法
Sep 13 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
基于jquery二维码生成插件qrcode
Jan 07 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
基于node.js实现爬虫的讲解
Feb 18 Javascript
js console.log打印对象时属性缺失的解决方法
May 23 Javascript
JavaScript实现拖拽和缩放效果
Aug 24 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
PHP集成FCK的函数代码
2008/09/27 PHP
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
使用PHP和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
让插入到 innerHTML 中的 script 跑起来的实现代码
2006/07/01 Javascript
javascript YUI 读码日记之 YAHOO.util.Dom - Part.4
2008/03/22 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
Python中random模块用法实例分析
2015/05/19 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python SVD压缩图像的实现代码
2019/11/05 Python
如何将json数据转换为python数据
2020/09/04 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
配置管理计划的主要内容有哪些
2014/06/20 面试题
大学毕业的自我鉴定
2013/10/08 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
大三预备党员入党思想汇报
2014/01/08 职场文书
施工安全汇报材料
2014/08/17 职场文书
JavaScript中时间格式化新思路toLocaleString()
2021/11/07 Javascript