我們有一個使用RxTx更新我們遊戲控制檯固件的Java應用程序。當用戶通過WebStart在我們的網站上啓動Java應用程序時,爲了避免安全警報,我們購買了一個可信證書並使用該證書對應用程序進行了簽名。所有檢查都表明它已成功簽名,並且如果我通過Safari在我的Mac(OS X 10.6.8)上使用Java 1.6.0_41啓動應用程序,那麼它不會有任何抱怨。避免安全警報「你想運行這個應用程序嗎?」對於JWS應用程序
但是,如果我在Windows 8計算機上使用IE9啓動它,我會收到一條警告:「您是否想運行此應用程序?此應用程序將以無限制的訪問運行,這可能會使您的計算機和個人信息處於危險之中。應用程序只有當你信任發佈者,這個應用程序的數字簽名已經過期,更多信息「。
如果單擊詳細信息,我得到「這個應用程序將在您的計算機上不受限制地訪問您的個人文件和其他設備(攝像頭,麥克風)運行。
雖然應用程序具有數字簽名的應用程序關聯文件(JNLP)沒有一個,數字簽名確保文件來自供應商並且沒有被修改。
數字簽名是使用可信證書生成的。 我試圖找到一個解決方案如何不得到這個消息,並認爲我需要做的是簽署JNLP文件(即將其複製到jar中,如指出的here),但我找不到如何讓NetBeans執行那!我正在使用NetBeans 6.9.1。任何人都知道如何做到這一點,如果它足以簽署JNLP?
要驗證該文件被正確簽名的我做了以下內容:
jarsigner -verify -certs -verbose OribooDesktopClient.jar
6396 Thu Feb 28 17:14:14 CET 2013 META-INF/MANIFEST.MF
6354 Thu Feb 28 17:14:14 CET 2013 META-INF/MOVINTOF.SF
1843 Thu Feb 28 17:14:14 CET 2013 META-INF/MOVINTOF.RSA
0 Thu Feb 28 17:07:28 CET 2013 META-INF/
0 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/
0 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/resources/
0 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/resources/busyicons/
sm 3912 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/BBDatabase.class
X.509, CN=Movinto fun AB, O=Movinto fun AB, STREET=?rev?gen 138, L=?re, ST=J?mtland, OID.2.5.4.17=83013, C=SE
[certificate is valid from 2/28/13 1:00 AM to 3/1/14 12:59 AM]
sm 2497 Thu Feb 28 17:07:26 CET 2013 oribooDesktopClient/Binary.class
X.509, CN=Movinto fun AB, O=Movinto fun AB, STREET=?rev?gen 138, L=?re, ST=J?mtland, OID.2.5.4.17=83013, C=SE
[certificate is valid from 2/28/13 1:00 AM to 3/1/14 12:59 AM]
....
您的證書是「代碼簽名」證書還是僅僅是SSL證書?後者將被視爲不比自簽證書有效,不管它是否由可信證書頒發機構頒發。事實上,您在某些機器上獲得了安全對話框,但在其他機器上卻沒有,這讓我相信您可能在過去的安全對話框中,非Windows-8機器上檢查了「始終信任來自此發佈者的內容」複選框。 – VGR 2013-03-01 13:07:33
我很確定我從未在任何機器上檢查過任何「始終信任」,以確保我始終能夠看到與第一次訪問者相同的內容,因爲我們購買代碼簽名證書的原因是爲了不會獲得這些彈出窗口。是的,這是一個Comodo代碼簽名證書。 – 2013-03-01 18:32:09
簽署JNLP是一項額外的安全措施。它旨在確保應用程序是從.jnlp文件啓動的,該文件與簽名jar內捆綁的.jnlp文件相同,這保證了其他站點不能鏡像應用程序。我不認爲簽署JNLP文件將解決此問題。 – VGR 2013-03-01 19:57:05