Node.js中.pfx后缀文件的处理方法

 更新时间:2017年03月10日 08:48:22   作者:gowhich  
这篇文章主要介绍了Node.js中.pfx后缀文件的处理方法,文中介绍的很详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

前言

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • 深入学习nodejs中的async模块的使用方法

    深入学习nodejs中的async模块的使用方法

    本篇文章主要介绍了nodejs中的async模块的使用方法,具有一定的参考价值,有兴趣的可以了解一下
    2017-07-07
  • node 文件上传接口的转发的实现

    node 文件上传接口的转发的实现

    这篇文章主要介绍了node 文件上传接口的转发的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 浅谈express 中间件机制及实现原理

    浅谈express 中间件机制及实现原理

    本篇文章主要介绍了浅谈express 中间件机制及实现原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • 深入理解Node.js中的Worker线程

    深入理解Node.js中的Worker线程

    这篇文章主要介绍了深入理解Node.js中的Worker线程,对Worker线程感兴趣的同学,一定要看一下
    2021-04-04
  • 使用Node.js处理前端代码文件的编码问题

    使用Node.js处理前端代码文件的编码问题

    这篇文章主要介绍了使用Node.js处理前端代码文件的编码问题的方法,Node自带的相关类库处理编码方面的问题时还是比较得心应手的,需要的朋友可以参考下
    2016-02-02
  • Node.js API详解之 timer模块用法实例分析

    Node.js API详解之 timer模块用法实例分析

    这篇文章主要介绍了Node.js API详解之 timer模块用法,结合实例形式分析了Node.js API中timer模块基本功能、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-05-05
  • Node.js全局可用变量、函数和对象示例详解

    Node.js全局可用变量、函数和对象示例详解

    JavaScript中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量,下面这篇文章主要给大家介绍了关于Node.js全局可用变量、函数和对象的相关资料,需要的朋友可以参考下
    2023-03-03
  • NodeJs实现简单的爬虫功能案例分析

    NodeJs实现简单的爬虫功能案例分析

    爬虫,是一种按照一定的规则,自动地抓取网页信息的程序或者脚本。这篇文章通过一个案例给大家分享NodeJs实现简单的爬虫功能,感兴趣的朋友一起看看吧
    2018-12-12
  • node.js实现http服务器与浏览器之间的内容缓存操作示例

    node.js实现http服务器与浏览器之间的内容缓存操作示例

    这篇文章主要介绍了node.js实现http服务器与浏览器之间的内容缓存操作,结合实例形式分析了node.js http服务器与浏览器之间的内容缓存原理与具体实现技巧,需要的朋友可以参考下
    2020-02-02
  • Node.js中的流(Stream)的作用详解

    Node.js中的流(Stream)的作用详解

    在 Node.js 中,stream模块提供了用于实现流接口的 API,但是很多内置模块都提供了关于流的 API,所以通常不需要显式的调用 stream 模块来使用流,本文给大家介绍一下Node.js中的流(Stream)有什么作用,需要的朋友可以参考下
    2023-08-08

最新评论