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 相关文章推荐
jquery animate 动画效果使用说明
Nov 04 Javascript
Javascript 面向对象 继承
May 13 Javascript
JavaScript中的Function函数
Aug 27 Javascript
js中substr,substring,indexOf,lastIndexOf,split,replace的用法详解
Nov 09 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
jQuery simpleModal插件的使用介绍
Aug 30 Javascript
Vue2.0 多 Tab切换组件的封装实例
Jul 28 Javascript
JavaScript实现简单生成随机颜色的方法
Sep 21 Javascript
如何用RxJS实现Redux Form
Dec 29 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 Javascript
通过vue刷新左侧菜单栏操作
Aug 06 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 $_SERVER详解
2009/01/16 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
Bootstrap3学习笔记(二)之排版
2016/05/20 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
Vue.js实现价格计算器功能
2020/03/30 Javascript
AngularJS实现的输入框字数限制提醒功能示例
2017/10/26 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
Vue 动态添加路由及生成菜单的方法示例
2019/06/20 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
Python中Continue语句的用法的举例详解
2015/05/14 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
使用Python来开发微信功能
2018/06/13 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
Django高并发负载均衡实现原理详解
2020/04/04 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
《青海高原一株柳》教学反思
2014/04/25 职场文书
网站创业计划书
2014/04/30 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
企业文化口号
2014/06/12 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
党支部季度考核意见
2015/06/02 职场文书
家长通知书家长意见
2015/06/03 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书