解決【應用程式已被安全設定阻止】彈出框的手動設定方法
在包含Applet標籤的頁面,執行中較高的jdk版本(例如jdk1.7或jdk1.8),會彈出【應用程式已被安全設定阻止】的安全警告框(如下圖),這是由於oracle在jdk1.7(主要涉及到jdk7u21, jdk7u45, jdk7u51版本)中引入了對java瀏覽器外掛的安全策略,以解決Applet的安全漏洞問題,具體可參看我的另一篇博文:JDK中Applet的安全性策略探究。
該【應用程式已被安全設定阻止】安全警告框是jdk7u51以後的版本中才出現的,是客戶端jre阻止未簽名或自簽名的jar執行的舉措。可以按以下步驟進行設定:
一、在Java Control Panel中新增可信任站點--“例外站點”。
手動在java控制面板中新增例外站點,如下圖:
二、 在IE瀏覽器或Java Control Panel中匯入java簽名證書。
由於在java控制檯新增例外站點後,每次登入系統時都會彈出安全警告框,警告框如下圖,這是由於jdk7u21對未簽名或自簽名的應用程式增加了安全警告,出現安全提示,要求先確認,然後才允許在瀏覽器中執行 Java 內容。此時可以通過新增客戶端證書的方式來消除該對話方塊。可以在IE瀏覽器中或Java Control Panel中匯入Java簽名證書,兩者任匯入一個即可生效,建議都匯入。
1、在IE中匯入java簽名證書ufgov. csr,此處必須匯入到【受信任的根證書頒發機構】
手動匯入IE證書(工具->Internet選項->內容->證書->受信任的根證書頒發機構->匯入)如下圖:
2、在Java Control Panel中匯入java簽名證書ufgov. csr,此處必須匯入到證書型別為【簽名者 CA】和【可信的證書】兩處。
手動匯入Java Control Panel證書(java控制面板->安全->證書->簽名者 CA(或可信任的證書)->輸入),由於匯入方法一致,下面以【簽名者 CA】匯入過程舉例如下圖:
三、 設定Java Control Panel控制面板引數—混合程式碼。
如果客戶端環境是jdk7u45,如果包含未簽名的jar時候會彈出如下安全警告框(如下圖),此時可以設定混合程式碼為【啟用-隱藏警告並在保護下執行】。
手動設定如下圖:
四、設定入口jar的manifest屬性:Caller-Allowable-Codebase和Permissions
從7 Update 45 起,增加了針對 Java 應用程式執行的安全增強功能。當web頁面發起LiveConnect對RIA的呼叫時,如果沒有正確簽名或配置,會出現一個新的安全警告,如下圖。
最簡單的方法是【不再對此應用程式和web站點顯示此訊息】打鉤,點選【執行】,以後將不再彈出該對話方塊。
另外也可以通過設定manifest屬性:Caller-Allowable-Codebase和Permissions解決: