6. Linux 64bit 版 サーバー・アプリケーション

6.1. インストール先のフォルダ構成

/usr/EbeServer : デフォルト

+ bin :
Linux 64bit ネイティブバイナリが格納されています。

+ certificate :
サーバーの接続用プロトコルに https(http over ssl) を使用する場合
この中にサーバー証明書を格納します。

+ core :
.NET Core バイナリが格納されています。

+ docs :
書類ファイルが格納されます。
クライアント・アプリケーションが登録した書類ファイルが格納されます。
ファイルは、サーバー管理者が見ることが出来ないことを目的として暗号化されています。

+ license :
ライセンスファイルが格納されています。

正規版ライセンスをご購入された場合、このファイルを置き換えてください。

+ logs:
ログフォルダ

+ tools :
「電子取引Save V2.0 管理ツール」が格納されています。

+ appsettings.ini :
サーバー・アプリケーションの設定ファイルです。

+ run.sh :
サーバー・アプリケーションの起動用シェルスクリプトです。

+ cmd.sh :
管理ツールの起動用シェルスクリプトです。

6.2. 起動方法

インストーラによって /usr/EbeServer/run.sh が作成されます。

ご注意:サーバー・アプリケーションをLinuxにインストールした場合、設定ファイルappsetting.ini に起動に必要な指定を行う必要があります。指定しない場合、デフォルトである localhost で起動するため、クライアント・アプリケーションから接続できません。
appsetting.iniについて詳細は「7. 設定ファイルappsettings.iniについて」をご参照ください。

起動時に「dotnet: そのようなファイルやディレクトリはありません」と表示される場合は、/usr/share/dotnet/dotnetのシンボリックリンクを作成してください。
例 # ln -s /usr/share/dotnet/dotnet /usr/bin

6.3. ファイアウォールの設定

クライアントから通信を受け付けるポートを解放する必要があります。

接続URLがhttp://192.168.15.217:5000 の場合
# firewall-cmd --zone=public --add-port=5000/tcp --permanent
# firewall-cmd --reload

接続URLがhttps://192.168.15.217:5001 の場合
# firewall-cmd --zone=public --add-port=5001/tcp --permanent
# firewall-cmd --reload

6.4. サーバー・アプリケーションとhttpで接続する

非暗号化接続(http)で接続URLを http://192.168.15.217:5000 に設定する例を説明します。IPアドレス 192.168.15.217 が割り当てられたLinuxに、サーバー・アプリケーションをインストールします。

テキストエディタを使用して設定ファイルの appsettings.ini を編集します。
protocol=http
http_address=http://192.168.15.217:5000

サーバー・アプリケーションの起動時のログに
“Now listening on: http//192.168.15.217:5000” のように指定したURLが表示されていれば、起動に成功しています。

6.5. サーバー・アプリケーションとhttpsで接続する

暗号化接続のプロトコル https(http over ssl) で接続するには、pfx形式のサーバー証明書が必要になります。接続に使用できるサーバー証明書には以下があります。

・外部の認証局が発行・署名した証明書
・自身が発行・署名した自己証明書

※自己証明書はテストの目的にのみ使用し、実際の運用時には信頼できる第三者の認証局が発行・署名したサーバー証明書を使用することをお勧めします。

6.5.1. 認証局が発行・署名した証明書を使用して接続

接続URL を https://192.168.15.217:5001 に設定する例を説明します。
IPアドレス 192.168.15.217 が割り当てられたLinuxに、サーバー・アプリケーションをインストールします。

認証局が発行・署名したサーバー証明書を用意します。

テキストエディタを使用して設定ファイル appsettings.ini を編集します。
プロトコル https で接続する場合、ポート番号は 5001 になります。https 接続で必要となるサーバー証明書のパスとパスワードをcertfileとcertpasswdで設定します。

protocol=https
https_address=https://192.168.15.217:5001
certfile=/usr/EbeServer/certificate/xxxxx(証明書ファイル名)
certpasswd =証明書のパスワード

サーバー・アプリケーションの起動時のログに
“Now listening on: https//192.168.15.217:5001” のように指定したURLが表示されていれば、起動に成功しています。

6.5.2. 自己証明書を使用して接続

自己証明書を作成しサーバーと接続させる手順となります。

なお、自己証明書を使用する場合は、クライアント・アプリケーション側からの接続時に設定で「https接続時に証明書の検証を行わない」のチェックをONにする必要があります。

接続URL を https://192.168.15.217:5001 に設定する例を説明します。
IPアドレス 192.168.15.217 が割り当てられたLinuxに、サーバー・アプリケーションをインストールします。

コンソールを起動し証明書を格納するフォルダへ移動します。
# cd /usr/EbeServer/certificate

サーバーの秘密鍵を作成します。
# openssl genrsa 2024 > server.key

サーバーの公開鍵を作成します。
# openssl rsa -in server.key -out server.key

証明書署名要求を作成します。
# openssl req -new -key server.key -out server.csr
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:AntennaHouse,Inc.
Organizational Unit Name (eg, section) []:EbeServer
Common Name (eg, your name or your server's hostname) []:192.168.15.217
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

有効期限が1年の自己証明書を作成します。
# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 365

ファイル名 server.pfx として、自己証明書を作成します。
# openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx
Enter Export Password:xxxx
Verifying - Enter Export Password:xxxx
xxxx は証明書に設定するパスワードに置き換えてください。

パーミッションを変更します。
# chmod 600 ./server.*

テキストエディタを使用して設定ファイルの appsettings.ini を編集します。
プロトコル https で接続する場合、ポート番号は 5001 になります。https 接続で必要となるサーバー証明書のパスとパスワードをcertfileとcertpasswdで設定します。
protocol=https
http_address=https://192.168.15.217:5001
certfile=/usr/EbeServer/certificate/server.pfx
certpasswd=証明書のパスワード

サーバー・アプリケーションの起動時のログに
“Now listening on: https//192.168.15.217:5001” のように指定したURLが表示されていれば、起動に成功しています。

6.6. Linux のサービスに登録する

サービスに登録するとアプリケーションは画面上に表示されずバックグラウンドで実行されます。アプリケーションはインストールしたマシンの起動時に実行されマシンの起動中は常に動作・使用可能になります。

バックグラウンドで実行されるためマシンへサインインしてアプリケーションを実行させる必要はなく、アイコンからの実行では常に表示されるコンソールを表示させずに使用できます。

・サービスの登録方法:

サービス用システムグループを作成します。
# groupadd -r ebeserver

サービス用システムユーザーを作成します。
# useradd -g ebeserver -s /sbin/nologin -r ebeserver

サービスの設定ファイルを作成します。
# vi /etc/systemd/system/ebeserver.service

#--- 設定例・開始---
[Unit]
Description=ebeserver-daemon
After=rh-mariadb105-mariadb.service
[Service]
User=ebeserver
Environment=LD_LIBRARY_PATH=/usr/EbeServer/bin
WorkingDirectory=/usr/EbeServer/core
ExecStart=/usr/EbeServer/run.sh

ExecStop=/usr/bin/kill -p $MAINPID
ExecReload=/usr/bin/kill -s HUP $MAINPID
Environment=ASPNETCORE_ENVIRONMENT=Production
AmbientCapabilities=CAP_NET_BIND_SERVICE
#Restart=always
#RestartSec=10
Restart=no
KillSignal=SIGINT
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=ebeserver-daemon
[Install]
WantedBy=multi-user.target
#---設定例・終了---

SyslogIdentifier を指定したのでログ設定ファイルを追加します。
# vi /etc/rsyslog.conf

#--- 設定例・開始---
if $programname == 'ebeserver-daemon' then {
action(type="omfile" file="/var/log/ebeserver.log")
}
#---設定例・終了---

rsyslog.conf へ追加した設定を反映させるため rsyslog.service を再起動します。
# systemctl restart rsyslog.service

サービスの実行ユーザーをオーナーに設定します。
# chown -R ebeserver:ebeserver /usr/EbeServer

デーモンのリロードをします。
# systemctl daemon-reload

サービスを開始します。
# systemctl start ebeserver

ステータスをチェックします。
# systemctl status ebeserver

ログをチェックします。
# tail /var/log/ebeserver.log

サービスの永続化を設定します。
# systemctl enable ebeserver.service