我需要使用PFX文件創建數字簽名的PDF。我爲此使用TCPDF,但TCPDF與PEM/CRT文件一起使用。 如果我上傳共享主機上的文件,並嘗試轉換文件,它總是零KB。如何將pfx轉換爲共享主機上的crt/pem,如使用PHP腳本的Godaddy?
這是我試過的代碼。
exec('openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key');
我需要使用PFX文件創建數字簽名的PDF。我爲此使用TCPDF,但TCPDF與PEM/CRT文件一起使用。 如果我上傳共享主機上的文件,並嘗試轉換文件,它總是零KB。如何將pfx轉換爲共享主機上的crt/pem,如使用PHP腳本的Godaddy?
這是我試過的代碼。
exec('openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key');
幾個可能性:
-nocerts
選項,所以你只能得到私鑰。刪除該選項以將證書保留爲PEM導出的一部分。openssl
命令來解密PFX文件。如果您從openssl
獲得0KB文件,則可能會檢測到請求的非交互性並退出。openssl
命令中指定-nodes選項以防止openssl
試圖加密生成的文件。同樣,如果openssl
正在等待輸入(加密密碼),但檢測到非交互式呼叫,則可能只是在不向文件寫入任何內容的情況下失敗。使用輸出和返回在PHP中的調用exec
的VAR參數來確定什麼錯:
EXEC( 'OpenSSL的PKCS12 -in cert.pfx -nocerts退房手續密鑰文件-encrypted.key',$輸出,$ retval);
的$output
變量應包含從該命令的輸出; $retval
變量將包含返回代碼,然後您可以檢查openssl的文檔。
謝謝!但我想通了。 分別提取私鑰和證書分別與.key和.cer擴展名的新文件。 –
當您從命令行執行'openssl pkcs12 -in cert.pfx -nocerts -out keyfile-encrypted.key'時會發生什麼?它可能會導致你[「openssl pkcs12」網站:stackoverflow.com](https://www.google.com/search?q=「openssl + pkcs12」+ site%3Astackoverflow.com)。 – jww
謝謝!但我想出來了......分別用.key和.cer擴展名分別提取私鑰和證書。 @jww –