Signature

高級電子簽名:PKCS#7 到 PFX 轉換

  • February 8, 2021

我是需要在 SAP/R3 應用程序上安裝合法簽名的使用者。在過去幾年中,服務提供商提供了 X.509 高級簽名證書,可以將其導出為.pfx文件並安裝在 SAP 上。

一個新的服務提供商提供了一個帶有 PKCS#7 的加密狗,並且需要一個單獨的私鑰來創建一個.pfx文件。據我了解,私鑰在加密狗上加密。他們還告訴我,他們不允許提供私鑰。

有沒有辦法.pfx使用這個加密狗創建文件?

如果不是,我如何正確指定可用於創建.pfx文件的 X.509 高級簽名的要求?

PFX 文件通常稱為 PKCS#12,即“個人資訊交換語法”。它既可以用作受信任的證書儲存,也可以用作密鑰儲存。當它用作(私有)密鑰儲存時,它通常包含帶有私有密鑰的條目和與之關聯的證書鏈(通常是葉證書、CA 證書和根證書)。

如果您的密鑰在硬體令牌中,那麼通常您無法提取它。因此,您的軟體需要以某種方式引用它。為此,通常使用 PKCS 範圍內的另一個標準,即 PKCS#11。PKCS#11 也稱為 Cryptoki。不幸的是,微軟在遵守標準和使用 CSP(加密服務提供商)方面有著糟糕的記錄。PKCS#11 庫和 CSP 是特定於令牌的,應該可以從供應商處獲得。

要使用該設備,您的軟體應該支持 PKCS#11 介面,或者它應該以通用方式使用 Microsoft Cryptography API(可以使用“託管”類,但是您將被困在純軟體實現中)。如果那是你的毒藥,OpenSSL 也有一個 PKCS#11 引擎。


PKCS#7 是“加密消息語法”。它用於對數據進行簽名/加密。然而,因為它也可以攜帶證書,所以它有時也被用作證書儲存。它不是密鑰庫,因此私鑰不會或不應該在其中。


X.509 是證書和 CRL 的標準。它可以指定很多東西,但不能用來指定私鑰的儲存位置。因此,問題的最後一部分不清楚,我認為無法回答。

引用自:https://crypto.stackexchange.com/questions/88010