2013-04-09 133 views
13

我們最近購買了EV代碼從DigiCert簽名證書籤署我們的MSI來解決在Windows的SmartScreen警告消息。問題在於證書已交付給不允許導出私鑰的USB令牌。我們的構建環境位於託管虛擬機上,因此我們無法將USB令牌插入主機虛擬機。如何使用虛擬機上的EV代碼簽名證書籤署MSI

有沒有人有在託管虛擬機上使用EV代碼簽名證書的解決方案?所有證書供應商是否將這種類型的證書傳遞給硬件令牌?你如何在使用這種類型的Cert的虛擬環境中對MSI進行代碼簽名?

+0

我有同樣的問題。有關於此的任何發現? [自動化推廣的驗證(EV)代碼簽名]的 – 2013-04-23 03:29:45

+0

可能重複(http://stackoverflow.com/questions/17927895/automate-extented-validation-ev-code-signing) – 2015-06-17 05:38:49

回答

1

EV代碼簽名證書需要使用特殊硬件來存儲私鑰。這是什麼讓他們比標準證書更昂貴和更安全的一部分。我的建議是在主機上使用signtool.exe簽署可執行文件作爲後期構建步驟。

普通代碼簽名證書不具備的硬件要求,但他們不作爲「SmartScreen篩選器友好」作爲EV證書。

0

包括VMware在內的一些虛擬化軟件允許USB設備被重定向。

+1

...,並確保您連接到您的虛擬機與vnc,而不是遠程桌面 – azhrei 2015-08-12 05:20:59

+0

@azhrei您知道爲什麼在使用遠程桌面時加密狗似乎已斷開連接?一旦我在vmware中使用控制檯窗口,它似乎沒問題(證書軟件會看到加密狗) – 2016-04-11 13:20:00

+0

@NeilVarnas我不知道爲什麼 - 我猜測加密狗驅動程序明確要求(並檢查)您是否在控制檯上出於安全目的 – azhrei 2016-04-12 07:27:01

2

我對我們完全沒有問題。我們在不到15分鐘的時間內從支持PFX(文件)的標準代碼簽名證書切換到支持USB代幣的EV代碼簽名證書。

我只需將USB令牌設備連接到客戶 OS在VMWare(見的設備客戶端操作系統窗口的右下角圖標),安裝必要的設備驅動程序,設置的選項需要密碼來解鎖只有一次會議,然後很好去。

至於如何簽名,您可以像使用任何其他證書一樣簽名。如果操作系統的證書存儲區中沒有其他適用的代碼簽名證書,則則不需要指定證書的位置

我擔心我們會有麻煩,但沒有。所以,我不認爲你會,並且不知道你爲什麼會有麻煩。

+0

在虛擬機上的isntallign證書之後,我可以使用cmd成功簽署一個程序集,但每次構建代理(在我們的例子中爲Team City)嘗試執行命令行或使用命令行調用批處理文件時,返回「SignTool錯誤:未找到符合所有給定條件的證書」。構建代理是該機器上的管理員。你有沒有遇到過這個?如果不是,你可以詳細說明你的設置? – 2016-04-11 13:23:14

+0

@NeilVarnas將'/ debug'添加到您的signtool cmds中,並根據signtool在TeamCity案例中刪除所有證書的方式進行解決。您可能可以調整您的signtool調用,以向signtool提供關於選擇哪個證書的提示。 – azhrei 2016-04-12 07:24:38

+0

@NeilVarnas不,我從來沒有遇到過這樣的事情。聽起來像特定於您的構建代理的東西。我所有的簽名都是通過signtool.exe。 – 2016-04-15 06:29:17

0

對於有此問題的其他人,我們使用VNC服務器連接到具有令牌的VM。它不適用於僅RDP的VNC。

顯然,VNC就像有控制檯訪問盒(就RV Dongle而言)。