Node.js中.pfx后綴文件的處理方法
前言
nodejs中,在做加密解密的時(shí)候,會(huì)得到第三方的各種各樣的加密文件,其后綴也就那么幾種吧,.key/.pem/.pfx等,是不是可以自定義,反正就是一個(gè)文件。
但是今天我看了很多的nodejs庫(kù)好像也沒(méi)有找到與java keytool這樣的工具,因?yàn)樵趈ava里面,完全是可以讀取pfx,然戶進(jìn)行在進(jìn)行處理的,如果在nodejs中要如何操作,目前不知道,使用openssl做個(gè)轉(zhuǎn)換處理先。
第一個(gè)命令是:
openssl pkcs12 -in xxxx.pfx -nocerts -nodes -out domain_encrypted.key
第二個(gè)命令是:
openssl rsa -in domain_encrypted.key -out private.key
哪位大神知道的,可以告知下,謝謝了。
==================補(bǔ)充=================
google上有個(gè)辦法可以解析出兩種格式的文件
第一種格式文件的方式
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
詳細(xì)的可到這里:http://tecadmin.net/extract-private-key-and-certificate-files-from-pfx-file/
==========================================
==========================================強(qiáng)烈補(bǔ)充
多日奮戰(zhàn),終于解決了這個(gè)問(wèn)題,因?yàn)橐恢笔且粋€(gè)私鑰解密的問(wèn)題
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
這里主要是針對(duì)具體情況具體描述,可以變通取處理
因?yàn)閷?duì)方給過(guò)來(lái)的是一個(gè)在window環(huán)境下,使用工具生成的pfx和crt文件。
經(jīng)過(guò)對(duì)方給過(guò)來(lái)的生成工具的描述,這個(gè)crt文件還是一個(gè)cer后綴文件自己修改的cer->crt。可見(jiàn)這里如果對(duì)文件內(nèi)容不了解,光從后綴來(lái)看會(huì)坑了很多人。
先來(lái)看第一行的命令語(yǔ)句.
經(jīng)過(guò)文檔的查詢pfx文件是一個(gè)帶有私鑰跟證書的合體文件,通過(guò)上面的命令就可以得到一個(gè)文件就是private.pem,里面是一個(gè)含有證書和私鑰的。
不知道的我這里舉例。
私鑰是以
-----BEGIN RSA PRIVATE KEY-----
開(kāi)頭的。
證書是以
-----BEGIN CERTIFICATE-----
開(kāi)頭的。對(duì)不起不方便把所有內(nèi)容同時(shí)貼出來(lái)。很容易辨別的。
然后對(duì)方還會(huì)給你一個(gè)crt文件,這個(gè)事實(shí)上就是一個(gè)x509對(duì)應(yīng)的證書,需要解出來(lái),但是對(duì)于是java的應(yīng)該就不需要了,不過(guò)是php的或這是node的就需要了。
當(dāng)然是證書的話,就必須是以
-----BEGIN CERTIFICATE-----
開(kāi)頭的。
好了,如果你跟別人對(duì)接接口,遇到私鑰公鑰的問(wèn)題,但是對(duì)方給了你pfx和crt文件的話,就按照這個(gè)命令去操作的吧,我已經(jīng)在php和node環(huán)境下試過(guò)了。不過(guò)具體的算法還是要針對(duì)具體的情況來(lái)實(shí)施。
================補(bǔ)充================
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
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
相關(guān)文章
nodejs版本過(guò)高導(dǎo)致vue2版本的項(xiàng)目無(wú)法正常啟動(dòng)的解決方案
這篇文章主要給大家介紹了關(guān)于nodejs版本過(guò)高導(dǎo)致vue2版本的項(xiàng)目無(wú)法正常啟動(dòng)的解決方案,本文小編給大家詳細(xì)介紹了如何解決這個(gè)問(wèn)題,如有遇到同樣問(wèn)題的朋友可以參考下2023-11-11
Node.js connect ECONNREFUSED錯(cuò)誤解決辦法
這篇文章主要介紹了Node.js connect ECONNREFUSED錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2016-09-09
Node.js對(duì)MongoDB數(shù)據(jù)庫(kù)實(shí)現(xiàn)模糊查詢的方法
模糊查詢是數(shù)據(jù)庫(kù)的基本操作之一,下面這篇文章主要給大家介紹了利用Node.js對(duì)MongoDB數(shù)據(jù)庫(kù)實(shí)現(xiàn)模糊查詢的方法教程,文中給出了詳細(xì)的介紹和示例代碼,對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05
nodeJS服務(wù)器的創(chuàng)建和重新啟動(dòng)的實(shí)現(xiàn)方法
今天小編就為大家分享一篇nodeJS服務(wù)器的創(chuàng)建和重新啟動(dòng)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
windows系統(tǒng)上完全卸載并重裝Node的步驟(親測(cè)可用)
對(duì)于Windows平臺(tái)來(lái)說(shuō),所有的應(yīng)用程序,其安裝卸載都是一樣的,node.js也不例外,但是還是很多用戶不明白,下面這篇文章主要給大家介紹了關(guān)于windows系統(tǒng)上完全卸載并重裝Node的步驟,需要的朋友可以參考下2023-03-03
從零開(kāi)始學(xué)習(xí)Node.js系列教程六:EventEmitter發(fā)送和接收事件的方法示例
這篇文章主要介紹了Node.js EventEmitter發(fā)送和接收事件的方法,結(jié)合實(shí)例形式分析了EventEmitter發(fā)送和接收事件的原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下2017-04-04

