2011-03-09 104 views
2

我創建了一個自簽名證書,但瀏覽器告訴我「此CA根證書不受信任要啓用信任,請將此證書安裝在受信任的根證書頒發機構商店」。如何在IE中自動安裝自簽名證書受信任的根證書頒發機構商店

我通過進入IE - > Internet選項 - >內容 - >證書 - >等實現了...我實際上必須導出自簽名證書,然後將其導入到受信任的根證書。只有在證書位於用戶機器的ROOT存儲下,IE沒有顯示任何警告之後。

這將部署在生產環境中,因此讓用戶手動執行上述步驟是不可接受的。

我該如何自動執行此操作?我只是想讓他們接受,並沒有「證書錯誤」,並在IE瀏覽器中的URL欄變爲「紅色」。

我使用的是Tomcat 5.5。我也遵循了與Tomcat SSL教程相同的步驟http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html

在此先感謝。

+0

你可以得到已由根CA的自由http://www.startssl.com/簽署證書 – 2011-03-10 03:40:17

+1

完全重複的http:/ /stackoverflow.com/questions/5252800 - 當你沒有得到你喜歡的答案時,不要只是重新發布問題。 – 2011-03-10 16:50:04

回答

4

Java 6提供了一個名爲SunMSCAPI的加密提供程序來訪問Windows加密庫API。此提供程序實現包含所有Trust錨點證書的密鑰庫「Windows-Root」。

可以在此密鑰庫中插入證書。

KeyStore root = KeyStore.getInstance("Windows-ROOT"); 
root.load(null); 
/* certificate must be DER-encoded */ 
FileInputStream in = new FileInputStream("C:/path/to/root/cert/root.der"); 
X509Certificate cacert = (X509Certificate)CertificateFactory.getInstance("X.509").generateCertificate(in); 
root.setCertificateEntry("CACert Root CA", cacert); 

用戶會被提示是否需要確認。如果該操作被用戶取消,則拋出KeyStoreException。

對供應商的一些技術說明可以在這裏找到:http://download.oracle.com/javase/6/docs/technotes/guides/security/SunProviders.html#SunMSCAPI

+0

注意:由於Java中存在錯誤,所以在JDK7以下的Java 64位版本中不起作用。詳情:https://forums.oracle.com/forums/thread.jspa?threadID=1526024 – 2011-09-17 02:49:38

1

想一想。如果這是可能的,那麼會阻止任何欺詐網站做同樣的事情,並使其看起來像他們的網站是可信的?重點在於用戶必須確認證書安裝。

+1

這正是我想要的。用戶必須點擊OK。但是這並沒有將證書放置在受信任的根證書頒發機構商店中。相反,我不得不導出/導入證書。是否有一個單擊確定按鈕,可以爲用戶執行所有這些步驟? – Marquinio 2011-03-10 04:17:43

1

首先,做到這一點的可能性會危及用戶的安全,所以這將是一個安全漏洞,所以不,沒有簡單的方法來做到這一點。

接下來,不同的軟件有不同的證書存儲。微軟和Chrome瀏覽器使用CryptoAPI商店,Firefox有它自己的商店(Chrome也可以使用firefox的一個AFAIK)。 Adobe的軟件擁有自己的商店(除了CryptoAPI之外)。

相關問題