【iDempiere-Lab】iDempiere5.1のSSL/TLS設定

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でアクセスしようとするとエラーになってします。

%idempiere-server%
%idempiere-server%

現在(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

 

参考サイト

関連するコンテンツ