Node.js中.pfx尾碼檔案的處理方法,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 -nodesEnter 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 -nodesopenssl 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 -clcertsREM export the ssl cert (Crescendo load balancers)openssl pkcs12 -in aa.pfx -out aa_tmp_cn.pem -nodesopenssl x509 -in aa_tmp_cn.pem -out aa_cn.pem -text
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流。