題 .p7b和.spc數字證書文件之間的關係


我的公司剛從Thawte續簽了他們的數字證書。我之前使用的證書有一個'spc'擴展名。我已經遞交的新證書以'p7b'結尾。

雖然我可以直接使用這個p7b文件進行簽名,但我只是想知道是否有某種方法可以將其轉換為spc文件,然後我可以像之前那樣簽名。

是否建議直接使用p7b進行簽名?其次,這兩種文件之間的關係究竟是什麼?


2
2018-03-23 14:24


起源




答案:


這些只是兩個不同的文件擴展名 PKCS#7 文件。您只需將其從.p7b重命名為.spc即可。

不幸的是,我不相信PKCS規范曾經指定過它們的文件類型的文件擴展名,MIME類型或“幻數”(前4個字節)(並且公平地說,它們的文件類型主要是基於文本的,所以幻數不實際應用),因此不同的實現者對相同的PKCS相關文件類型使用了不同的文件擴展名。

[編輯:我以前在這裡寫了一個備忘錄,但我後來意識到我犯了一個錯誤。這是維基百科上X.509文章中更好的備忘單:]


http://en.wikipedia.org/wiki/X.509#Certificate_filename_extensions

證書文件擴展名

X.509證書的常用文件擴展名為:

  • .PEM  - (隱私增強郵件)Base64編碼的DER證書,包含在“----- BEGIN CERTIFICATE -----”和“----- END CERTIFICATE -----”之間
  • .cer,.crt,.der  - 通常採用二進制DER形式,但Base64編碼的證書也很常見(參見上面的.pem)
  • .p7b,.p7c  - 沒有數據的PKCS#7 SignedData結構,只有證書或CRL(s)
  • 或.p12  - PKCS#12,可能包含證書(公共)和私鑰(密碼保護)
  • .PFX  - PFX,PKCS#12的前身(通常包含PKCS#12格式的數據,例如,在IIS中生成的PFX文件)

PKCS#7是用於簽名或加密(官方稱為“包絡”)數據的標準。由於需要證書來驗證簽名數據,因此可以將它們包含在SignedData結構中。 .P7C文件是退化的SignedData結構,沒有任何數據要簽名。

PKCS#12從PFX(個人信息交換)標準發展而來,用於在單個文件中交換公共和私有對象。


我也看到了一個鏈接 相關服務器故障文章 到了 有用的Microsoft支持知識庫文章 確認您可以將.p7b重命名為.spc。


4
2018-03-23 21:43



那麼從最終用戶的角度來看,p7b文件是否等同於spc文件呢?也就是說,使用p7b進行簽名就像使用spc一樣好嗎? - Frederick
好吧,您沒有使用證書籤名,因為證書只包含您的公鑰。你用私鑰簽名。我不認為您的.spc文件曾經包含私鑰。我認為您使用的軟件可能已查看.spc中證書中的公鑰,然後在其他位置查找您的私鑰,例如在Mac OS X鑰匙串中或Windows證書庫中。但是,是的,據我所知,.p7b和.spc是相同的,所以你甚至可以根據需要將你的新文件重命名為.spc,你應該能夠像以前一樣使用它。 。 - Spiff