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 相关文章推荐
(function(){})()的用法与优点
Mar 11 Javascript
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
浅析webapp框架AngularUI的demo
Dec 21 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
Sep 23 Javascript
JS实现简易刻度时钟示例代码
Mar 11 Javascript
Vue.js render方法使用详解
Apr 05 Javascript
jfinal与bootstrap的登出实战详解
Nov 27 Javascript
基于js文件加载优化(详解)
Jan 03 Javascript
JS脚本实现网页自动秒杀点击
Jan 11 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
Aug 01 Javascript
vue实现直播间点赞飘心效果的示例代码
Sep 20 Javascript
Vue项目配置跨域访问和代理proxy设置方式
Sep 08 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时的知识积累总结
2013/06/07 PHP
memcache命令启动参数中文解释
2014/01/13 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
PHP中引用类型和值类型功能与用法示例
2019/02/26 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
基于jquery的获取浏览器窗口大小的代码
2011/03/28 Javascript
jQuery设置div一直在页面顶部显示的方法
2013/10/24 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
2014/07/02 Javascript
javascript中递归函数用法注意点
2015/07/30 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
JQuery之proxy实现绑定代理方法
2016/08/01 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
Python栈算法的实现与简单应用示例
2017/11/01 Python
Python实现感知机(PLA)算法
2017/12/20 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
matplotlib事件处理基础(事件绑定、事件属性)
2021/02/03 Python
保洁主管岗位职责
2013/11/20 职场文书
投标承诺书范本
2014/03/27 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
教师旷工检讨书
2015/08/15 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
小学运动会入场口号
2015/12/24 职场文书
PHP实现创建以太坊钱包转账等功能
2021/04/21 PHP
详解python的异常捕获
2022/03/03 Python
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript