iDempiereにセキュアにアクセスするためにはSSL/TLSの利用は不可欠です。
そこで、iDempiere5.1でSSL/TLSを利用する際に必要な最低限の設定について調査及び研究し、その成果をまとめています。
【ポイント】ALPNのバージョンとJavaのバージョンを確認する
iDempiere5.1でSSL/TLSを使用するために、注意すべきはALPNのバージョンとJavaのバージョンを合わせることにつきます。
iDempiereのサーバーフォルダの直下には、alpn-boot.jarというファイルがあります。このファイルがSSL/TLSでアクセスできるように頑張ってくれています。しかしながら、このalpn-boot.jarのバージョンが、Javaのマイナーバージョン毎に細かく規定されており、マッチしていないバージョンを使用するとSSL/TLSでアクセスしようとするとエラーになってします。
現在(2018/7/3)現在の、java8のマイナーバージョンは171もしくは172であり、対応するALPNのバージョンはいずれも、8.1.12.v20180117です。
対応するALPNのバージョンを確認した下記のサイトよりダウンロードします。
例えば、現在の私の環境ではJavaのバージョンは1.8.0_171ですので、ALPNの8.1.12.v20180117をダウンロードします。
alpn-boot-8.1.11.v20170118.jarをダウンロードします。
ダウンロードしたalpn-boot-8.1.12.v20180117.jarを"alpn-boot.jar"にリネームして、サーバーフォルダ(ディレクトリ)の直下に配置すれば完了です。
基本的にWindowsでもLinuxでも同じです。
おまけ:サーバー起動ファイルの設定確認
ALPNを正しく動作させるために、サーバー起動ファイルの設定も確認しておきましょう。基本的にはサーバー起動ファイルの設定は変更しなくてもSSL/TLSは使用できるはずです。
Windowsのサーバー起動ファイル
Window版のサーバー起動ファイルは"idempiere-server.bat"です。2018年7月現在では下記のように記述されています。
@Echo off
CALL utils\myEnvironment.bat Server
@if not "%JAVA_HOME%" == "" goto JAVA_HOME_OK
@Set JAVA=java
@Echo JAVA_HOME is not set.
@Echo You may not be able to start the server
@Echo Set JAVA_HOME to the directory of your local 1.6 JDK.
goto START
:JAVA_HOME_OK
@Set JAVA=%JAVA_HOME%\bin\java
:START
@Echo =======================================
@Echo Starting iDempiere Server ...
@Echo =======================================
FOR %%c in (plugins\org.eclipse.equinox.launcher_1.*.jar) DO set JARFILE=%%c
@Set VMOPTS=-Xbootclasspath/p:alpn-boot.jar
@Set VMOPTS=%VMOPTS% -Xbootclasspath/p:alpn-boot.jar
@Set VMOPTS=%VMOPTS% -Dorg.osgi.framework.bootdelegation=sun.security.ssl,org.eclipse.jetty.alpn
@Set VMOPTS=%VMOPTS% -Dosgi.compatibility.bootdelegation=true
@Set VMOPTS=%VMOPTS% -Djetty.home=jettyhome
@Set VMOPTS=%VMOPTS% -Djetty.base=jettyhome
@Set VMOPTS=%VMOPTS% -Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-alpn.xml,etc/jetty-http2.xml,etc/jetty-https.xml
@Set VMOPTS=%VMOPTS% -Dosgi.console=localhost:12612
@Set VMOPTS=%VMOPTS% -Dmail.mime.encodefilename=true
@Set VMOPTS=%VMOPTS% -Dmail.mime.decodefilename=true
@Set VMOPTS=%VMOPTS% -Dmail.mime.encodeparameters=true
@Set VMOPTS=%VMOPTS% -Dmail.mime.decodeparameters=true
@"%JAVA%" %IDEMPIERE_JAVA_OPTIONS% %VMOPTS% -jar %JARFILE% -application org.adempiere.server.application
Linuxのサーバー起動ファイル
#!/bin/sh
#
unset DISPLAY
BASE=`dirname $( readlink -f $0 )`
. $BASE/utils/myEnvironment.sh Server
if [ $JAVA_HOME ]; then
JAVA=$JAVA_HOME/bin/java
else
JAVA=java
echo JAVA_HOME is not set.
echo You may not be able to start the server
echo Set JAVA_HOME to the directory of your local JDK.
fi
if [ "$1" = "debug" ]; then
DEBUG="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=4554,server=y,suspend=n"
fi
echo ===================================
echo Starting iDempiere Server
echo ===================================
VMOPTS="-Xbootclasspath/p:alpn-boot.jar
-Dorg.osgi.framework.bootdelegation=sun.security.ssl,org.eclipse.jetty.alpn
-Dosgi.compatibility.bootdelegation=true
-Djetty.home=$BASE/jettyhome
-Djetty.base=$BASE/jettyhome
-Djetty.etc.config.urls=etc/jetty.xml,etc/jetty-deployer.xml,etc/jetty-ssl.xml,etc/jetty-ssl-context.xml,etc/jetty-http.xml,etc/jetty-alpn.xml,etc/jetty-http2.xml,etc/jetty-https.xml
-Dosgi.console=localhost:12612
-Dmail.mime.encodefilename=true
-Dmail.mime.decodefilename=true
-Dmail.mime.encodeparameters=true
-Dmail.mime.decodeparameters=true"
$JAVA ${DEBUG} $IDEMPIERE_JAVA_OPTIONS $VMOPTS -jar $BASE/plugins/org.eclipse.equinox.launcher_1.*.jar -application org.adempiere.server.application
参考サイト
関連するコンテンツ
- 【iDempiere-Lab】ALPN - SSLアクセスとサーバーモニターのエラー(2017/5/13)