Thursday, May 3, 2012

Netbeans 7.x對jar檔自動簽章

要在Netbeans中設定在建置專案時自動對jar檔自動簽章的步驟如下:

1.打開project.properties檔案。在最後方加入下列設定。

#加入自動化自我簽章
jarsign.jarsigner=jarsigner.exe路徑
jarsign.keystore=已核發之憑證檔
jarsign.storepass=憑證檔密碼
jarsign.signedjar=${dist.dir}
jarsign.alias=憑證別名

使用Keytool產生自我核發的憑證

為了要讓Applet可以在客戶端具有特殊權限,例如:存取客戶端的檔案系統,必須要對JAR檔進行簽章的動作,但是要申請一個憑證必須要有$$,因此為了測試我們可以使用JDK內建的keytool工具來產生金鑰並核發憑證給自己!

測試環境:JDK 1.6.31 Windows 7 x64 命令列模式

  • 輸入下列指令可以直接產生自我核發之憑證
#使用Java的keytool指令
keytool -genkey -alias test -keysize 2048 -keyalg RSA -sigalg SHA1withRSA -keypass test1234 -storepass test1234 -validity 365 -dname "CN=testname, OU=testunit, O=testorg, L=testlocation,S=teststate , C=TW" -keystore test.jks

Friday, April 27, 2012

Glassfish3入門 (3)-整合mod_jk

一般的網頁伺服器會使用httpd來顯示靜態網頁,而使用tomcat或是glassfish當成是jsp動態網頁或是servlet的容器,但是使用者若要進入java-based的網站還要輸入port number(例如:8080),會造成使用者的困擾,同時網管人員也可能因為安全因素而不開放8080埠,本文將介紹使用mod_jk讓httpd自動轉發servlet或是jsp之頁面要求至glassfish伺服器。(本文是參考Glassfish 3.1.2版之administration-guide)

  • 伺服器(CentOS 5.8 x64)既有服務:apache httpd 2.2、glassfish 3.1.2 (已有一個domain叫app,並且發佈了一個web專案叫School)。

Monday, April 2, 2012

GlassFish3 入門 (2) -- 以non-root的權限執行服務

為了避免執行GlassFish服務的使用者具有太大的權限,例如前文的root,因此我們可以建立一個較低權限的使用者來啟動服務。

  • 首先建立一個群組glassfish3,並且新增一個使用者glassfish,此使用者沒有home directory。
sudo groupadd glassfish3
sudo useradd -s /bin/bash -M -g glassfish3 glassfish

  •  將/opt/glassfish3的所有權轉給glassfish。

sudo chown -Rf glassfish.glassfish3 /opt/glassfish3
  •  修改/etc/init.d/GlassFish_test,讓它可以用glassfish的權限啟動服務。

    Sunday, April 1, 2012

    GlassFish3 入門 (1) -- 初始設定

    為了專案開發需要,採用了glassfish3當成是Web Service的容器。為免以後忘記如何將服務架起來,只好記錄下來囉!

    本文使用的是glassfish3 open source edition - 3.1.2,可在此下載。主機採用CentOS 5搭配JDK 6u31的執行環境。

    • 先將JDK以及glassfish3解壓縮在/opt底下。(JAVA_HOME請自行設定,在此不詳述)
    •  設定基礎環境(編輯/opt/glassfish3/glassfish/config/asenv.conf),加入以下兩行指令,指定預設之Java Home及glassfish3安裝路徑,可避免自動啟動服務時發生錯誤。
    AS_JAVA="/opt/jdk1.6.0_27"
    AS_HOME="/opt/glassfish3/glassfish"

    •  進入/opt/glassfish3/bin裡,輸入sh asadmin,可以進入管理畫面。
    1.  可先將預設domain1刪除(delete-domain domain1)
    2.  建立自己的domain(create-domain test),按下Enter即可自動設定(預設沒有密碼)。

    •  設定開機自動啟動服務。
    1. 進入管理介面後,輸入create-service [instance]指令,此處的instance指的是domain名稱。
    2. 指令成功執行後,會自動將啟動指令檔複製到/etc/inid.d/以及/etc/rcN.d底下(此處的N為0-6及S)。
    3. 此內建的指令檔會自動在重開機後啟動服務,但先決條件是重開機之前要先啟動服務