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

