Windows

由 GPO 部署時程式碼簽名證書不起作用

  • March 11, 2019

我們來自 Symantec 的程式碼簽名證書已轉換為受密碼保護的 pfx,具有完整的證書鏈、公鑰和私鑰

當手動將證書導入建構伺服器 (Windows Server 2012 R2) 時,使用 signtool(版本 10.0.17763.0,x64)進行簽名,但在使用來自 DC (Server 2012 R2) 的 GPO 推送證書時無效

在這兩種情況下:

  • 導入完整的證書鏈,並且 DC 上的所有證書詳細資訊與伺服器上的證書相同
  • 伺服器上的證書正常選項卡聲稱“您有一個與此證書相對應的私鑰”

我的簽名命令是這樣的:

C:\Users\myUser>“C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe” 簽名 /debug /v /a /sm /s Root /n "" /t http://timestamp.verisign.com/scripts/timstamp.dll MyApp.exe

手動導入伺服器後執行的結果:

After EKU filter, 40 certs were left.
After expiry filter, 34 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 1 certs were left.

GPO 推送到伺服器後執行的結果:

After EKU filter, 40 certs were left.
After expiry filter, 34 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.

私鑰過濾後,剩下 0 個證書的原因是什麼?

我用於發布證書的 gpo 是使用以下證書設置的:電腦配置、策略、Windows 設置、安全設置、公鑰策略、受信任的根證書

為了讓它工作,我還必須在以下位置設置相同的證書:電腦配置、策略、Windows 設置、安全設置、公鑰策略、受信任的發布者

我還必須啟用電腦配置、策略、管理模板、Windows 組件、Windows 更新、允許來自 Intranet Microsoft 更新服務位置的簽名更新

引用自:https://serverfault.com/questions/955923