Java Web アプリケーションを開発している場合は、オープン ソースの JBoss AS Java アプリケーション サーバーにデプロイすることを検討してください。
このチュートリアルでは、SSL をサポートする JBoss を Linux にインストールする方法について説明します。
1. JBoss AS 7 をダウンロード
Jboass AS の現在の安定バージョンは 7.1.1 です。ここからダウンロードしてください。
または、以下に示すように wget を使用して直接ダウンロードします:
cd /usr/save wget http://download.jboss.org/jbossas/7.1/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final.zip unzip jboss-as-7.1.1.Final.zip
2. JBOSS_HOME を設定
jboss を /home ディレクトリの下に保持し、それに応じて JBOSS_HOME を以下に示すように設定します。
cd /usr/save mv jboss-as-7.1.1.Final /home export JBOSS_HOME=/home/jboss-as-7.1.1.Final
また、JBOSS_HOME を ~/.bash_profile ディレクトリに追加してください。
3. Java のバージョンを確認
Java AS 7 を実行するには、JDK 1.6 以降が必要です。システムに JDK がインストールされていない場合は、ここからダウンロードしてください。
私のシステムには、すでに JDK がインストールされています。
# java -version java version "1.6.0_31" ..
4. JBoss サーバーの起動と停止
以下に示すように、standalone.sh スクリプトを使用して JBoss サーバーを起動します。 nohup と &を使用して、バックグラウンドで JBoss サーバーを実行します。
# nohup sh $JBOSS_HOME/bin/standalone.sh &
JBoss サーバーにスターを付けると、http://localhost:8080 にアクセスして JBoss サーバーにアクセスできるようになります。
ip-address を使用して JBoss にアクセスする場合は、JBoss AS がリモート接続を受け入れることを許可する必要があります。
JBoss サーバーをシャットダウンするには、単にバックグラウンド プロセスを強制終了しないでください。代わりに、次の jboss-cli.sh スクリプトを使用して、以下に示すようにシャットダウン コマンドを JBoss サーバーに送信します。
$JBOSS_HOME/bin/jboss-cli.sh --connect --command=:shutdown
5. Java キー ストアの作成
/usr/save/keystore の下に JBoss に必要なキーを作成しましょう
mkdir /usr/save/keystore cd /usr/save/keystore
以下に示すように、java keytool genkey コマンドを使用して、RSA キーペアと自己署名証明書を作成します。
# /usr/java/jdk1.6.0_31/bin/keytool -v -genkey -alias jbosskeys -keyalg RSA -keysize 1024 -keystore jbosskeys.jks -keypass SecretPwd -storepass SecretPwd -validity 365 -dname "CN=localhost" Generating 1,024 bit RSA key pair and self-signed certificate (SHA1withRSA) with a validity of 365 days for: CN=localhost
6.輸出入証明書
証明書を crt ファイルにエクスポートします。
# /usr/java/jdk1.6.0_31/bin/keytool -v -export -rfc -alias jbosskeys -file localfile.crt -keystore jbosskeys.jks -keypass SecretPwd -storepass SecretPwd Certificate stored in file <localfile.crt>
crt ファイルをキーストアにインポートします。
# /usr/java/jdk1.6.0_31/bin/keytool -v -import -keypass SecretPwd -noprompt -trustcacerts -alias localhost -file localfile.crt -keystore cacerts.jks -storepass SecretPwd Certificate was added to keystore [Storing cacerts.jks]
7. standalone.conf を変更
/home//jboss-as-7.1.1.Final/bin/standalone.conf ファイルを変更し、次の JAVA_OPTS パラメータを追加します。
JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.keyStorePassword=SecretPwd" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.trustStorePassword=SecretPwd" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.keyStoreType=JKS" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.trustStoreType=JKS" JAVA_OPTS="$JAVA_OPTS \-DCLIENT_KEY_ALIAS=jbosskeys" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.keyStore=/usr/save/keystore/jbosskeys.jks" JAVA_OPTS="$JAVA_OPTS \-Djavax.net.ssl.trustStore=/usr/save/keystore/cacerts.jks"
8. standalone.xml に SSL エントリを追加
以下に示すように、/home//jboss-as-7.1.1.Final/standalone/configuration/standalone.xml を変更します。
まず、standalone.xml ファイルで、次の行の後に次の SSL コネクタ情報を追加します。
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="connect" secure="true"> <ssl name="ssl" protocol="TLSv1" password="SecretPwd" certificate-key-file="/usr/save/keystore/jbosskeys.jks" ca-certificate-file="/usr/save/keystore/cacerts.jks" verify-client="true" /> </connector>
次に、standalone.xml ファイルで、この行の後に次の行を追加します。
<socket-binding name="connect" port="8181"/>
最後に、JBoss を再起動すると、ポート 8181 から JBoss SSL にアクセスできるようになります。