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 相关文章推荐
(转载)JavaScript中匿名函数,函数直接量和闭包
May 08 Javascript
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
webpack打包单页面如何引用的js
Jun 07 Javascript
mui 打开新窗口的方式总结及注意事项
Aug 20 Javascript
JS实现基于拖拽改变物体大小的方法
Jan 23 Javascript
layui内置模块layim发送图片添加加载动画的方法
Sep 23 Javascript
原生Vue 实现右键菜单组件功能
Dec 16 Javascript
Node.js中文件系统fs模块的使用及常用接口
Mar 06 Javascript
Node.js API详解之 dgram模块用法实例分析
Jun 05 Javascript
jdk1.8+vue elementui实现多级菜单功能
Sep 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下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
php strcmp使用说明
2010/04/22 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
javascript与有限状态机详解
2014/05/08 Javascript
jquery中获取元素里某一特定子元素的代码
2014/12/02 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
详解Python中time()方法的使用的教程
2015/05/22 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
python自动化测试之异常及日志操作实例分析
2019/11/09 Python
基于python实现把图片转换成素描
2019/11/13 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
详解Python多线程下的list
2020/07/03 Python
python 利用zmail库发送邮件
2020/09/11 Python
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
法院先进个人事迹材料
2014/05/04 职场文书
工作推荐信范文
2014/05/10 职场文书
民族团结先进个人事迹材料
2014/06/02 职场文书
安全责任书模板
2014/07/22 职场文书
四风问题原因分析及整改措施
2014/10/24 职场文书
学习与创新自我评价
2015/03/09 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
活动简报范文
2015/07/22 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python
MySQL 表空间碎片的概念及相关问题解决
2021/05/07 MySQL