以下介紹如何簽第三方憑證,並讓程式能在JRE下正確運行的步驟:
0.準備:
首先你要先去買憑證,並且同時會拿到一組keystore password。
假設憑證為myverification.pfx,keystore password為mypassword,
要簽署的執行的應用程式applet jar為myjar.jar,
1.取出簽章別名(alias name):
keytool -list -v -storetype pkcs12 -keystore myverification.pfx
→輸入keystore password
→在輸出畫面中,找出別名的欄位,並記下。假設別名為my-alias-name (有可能是英文名、簡單的英數字、或長長的像雜湊碼的東西,像我自已拿到憑證別名就只有"1"...)
2.進行簽署:
jarsigner -tsa http://timestamp.comodoca.com/rfc3161 -storetype pkcs12 -keystore myverification.pfx myjar.jar my-alias-name
→輸入keystore password
3.檢查是否簽署成功:
jarsigner -verify -verbose -certs myjar.jar
4.放到網頁中:
<applet id="MyApplet" name="MyApplet" archive="myjar.jar" code="com.mydomain.www.MyApplet.class" width="640" height="480"></applet>好了,難道就這麼簡單就成功了嗎?才怪...:D
尚須設定jar裡MANIFEST.MF的安全性設定,才能讓應用程式正確啟動,比起直接加入白名單更囉嗦啊...
以下是MANIFEST.MF一般性設定,詳細屬性設定可參考這裡。
Manifest-Version: 1.0 Ant-Version: Apache Ant 1.8.4 Created-By: 1.7.0_25-b17 (Oracle Corporation) Main-Class: ${main.class} Application-Name: My Application Permissions: all-permissions Trusted-Only: true Trusted-Library: true Codebase: www.mydomain.com Application-Library-Allowable-Codebase: www.mydomain.com Caller-Allowable-Codebase: www.mydomain.com
references:
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/security/manifest.html
http://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html
http://docs.oracle.com/javase/tutorial/deployment/applet/html.html
http://docs.oracle.com/javase/tutorial/deployment/jar/secman.html
https://www.java.com/en/download/help/java_blocked.xml
請問版主當初開發讀卡程式有去尋找Java Web Start的solution?
回覆刪除目前銀行或者其他產業讀卡程式看起來都是用ACTIVEX綁IE居多 或者是自行開發外掛程式
有可能開發一個JWS適用IE Chrome Firefox 和 Safari嗎?
目前我們是已經寫好了一個JWS,這個JWS本身是個Web Server+Card Reader,這樣JWS就跟瀏覽器完全脫勾了,再利用JWS+本機AJAX的方式就可以讓網頁取得健保卡資料,不過要注意CORS及JWS中SSL的問題。
刪除我可以請教版主 Java Web Start 如何使用嗎? 謝謝
回覆刪除您可以參照這份簡易的oracle tutorial: https://docs.oracle.com/javase/tutorial/deployment/webstart/
刪除簡單說就是下載一個.jnlp並執行,就會自動下載java應用程式並自動執行。