VM サーバと VM エージェントの HTTPS 対応手順
VM サーバの Web サーバを HTTPS 対応とする手順です。正規の SSL 証明書の設定の方法と、自己署名証明書の設定の方法の二つを説明します。
正規の SSL 証明書の設定と、自己署名証明書の設定は、同時に使用できません。どちらか一方を設定してください。変更する場合は、必ず一度 SSL の無効化(アンインストール)を行ってから行うようご注意下さい。
正規の SSL 証明書のインストール
SSL 証明書のベンダや組織内 CA (Certificate Authority, 認証局) 等で発行された証明書をインストールする手順です。
SSL 証明書の取得の仕方は、SSL 証明書のベンダの手順で実施してください。VM サーバでは、取得した SSL 証明書のインストール方法のみ提供しています。 この手順では VM サーバのアーカイブ(sidfmvm-x.x.x.tar.gz) に含まれるtls_install.sh を使用します。
また、使用する各ファイルは以下のような意味です。
- ssl.crt - 証明書ファイル
- ssl.key - 秘密鍵ファイル
- chain.crt - 中間証明書ファイル
-
VM サーバプログラムのインスールディレクトリに移動します。
$ cd /var/lib/sidfm/sidfmvm
-
SSL 証明書のインストール(中間証明書無しの場合)
$ sudo ./tls_install.sh -cert ssl.crt $ sudo ./tls_install.sh -key ssl.key $ sudo ./tls_install.sh -apply Server Disabled Server Enabled
-
SSL 証明書のインストール(中間証明書有りの場合)
$ sudo ./tls_install.sh -cert ssl.crt $ sudo ./tls_install.sh -key ssl.key $ sudo ./tls_install.sh -chain chain.crt $ sudo ./tls_install.sh -apply Server Disabled Server Enabled
正規の SSL 証明書のアンインストール
正規の SSL 証明書をアンインストールする手順です。
-
VM サーバプログラムのインスールディレクトリに移動します。
$ cd /var/lib/sidfm/sidfmvm
-
SSL 証明書のアンインストールします。
$ sudo ./tls_install.sh -clean Server Disabled Server Enabled
自己署名証明書のイントール
SIDfmVM サーバ バージョン 2.7.1 以前を 2023/2/25 以降に新規インストールした場合、/ca -add コマンドでエラーが発生する場合があります。
もしエラーが発生した場合、以下の手順で修正を行なった後、/ca -init から再度実行をお願いします。
以下のケースでは発生致しません。
もしエラーが発生した場合、以下の手順で修正を行なった後、/ca -init から再度実行をお願いします。
- SIDfmVM サーバをインストールしたホストにログインし、root ユーザになります。もし root ユーザになれない環境の場合は、以降の操作で docker コマンドの前にsudoを追加(docker ... > sudo docker ...)して実行してください。
- 以下のコマンドを入力し、SIDfm VM サーバの docker コンテナ内にアクセスします。
docker exec -it sidfmd /bin/bash
- docker コンテナ内で以下のコマンドを実行します。
cd /var/lib
mv easy-rsa/easyrsa3/vars .
rm -rf easy-rsa
git clone -b v3.0.6 https://github.com/OpenVPN/easy-rsa
mv vars easy-rsa/easyrsa3/
- docker コンテナを抜けます。
exit
- docker コンテナ内の変更を docker イメージに反映します。
docker commit sidfmd sidfmd
- 以上で作業は完了です。
以下のケースでは発生致しません。
- SIDfm VM サーババージョン 2.7.2 以降
- 2023/2/25 より前に新規インストールした環境。なお、その後オンラインアップデートを行っても発生しません。
自己署名証明書をインストールする手順です。
以下の host.example.com は、VM サーバへアクセスする際の URL のホスト名と完全に一致している必要がありますのでご注意下さい。また、IPアドレスを設定した場合、エラーは発生しませんが、WebブラウザやVMエージェントからアクセスできない場合があります。これは、OSやWebブラウザ側の制限によるものでVMシステムでは対応できませんので、IPアドレスでの設定は避けることをお勧めします。
-
VM サーバをインストールしたホストで以下のコマンドを実行します。
$ sudo docker exec sidfmd /ca -init
$ sudo docker exec sidfmd /ca -add host.example.com
$ sudo docker exec sidfmd /vm_manage server disable
$ sleep 5
$ sudo docker exec sidfmd /vm_manage server enable
-
Web ブラウザや OS に証明書をインストールします。
上記の操作で https://host.example.com/redmine/ でアクセスできるようになりますが、自己認証局で発行した証明書を使用しているため Web ブラウザや OS に証明書をインストールする必要があります。
$ sudo docker exec sidfmd /ca -show_ca > vm-server.crt
[Widnows の例]1. 証明書 (vm-server.crt) を右クリック
2. 証明書のインストール
3. 「信頼されたルート証明機関」の証明書ストアへインストール
自己署名証明書の更新
自己署名証明書の更新、ホスト名変更の手順です。
自己署名証明書の期限は10年間で作成していますので、通常は更新の必要はありません。
-
VM サーバをインストールしたホストで以下のコマンドを実行します。
$ sudo docker exec sidfmd /ca -revoke host.example.com
$ sudo docker exec sidfmd /ca -add host.example.com
VM サーバの http(80/tcp) の無効化手順
VM サーバの http(80/tcp) の無効化手順です。
-
root ユーザに昇格します。
$ su -
-
VM サーバのアーカイブファイルを展開したディレクトリに移動します。もし他のディレクトリにインストールした場合は、以降の説明はインストールしたディレクトリで読み替えて下さい。
# cd /var/lib/sidfm/sidfmvm
VM サーバのインストール時に VM サーバのアーカイブファイル (sidfmvm-1.0.?.tar.gz) を展開したディレクトリに移動します。もし削除してしまった場合は、以下の手順で改めてダウンロードし、ファイルを展開してください。なお、手順最後の「7. イメージを生成します。」は実行する必要はありません。
Red Hat Enterprise Linux 7 / CentOS 7 に VM サーバをインストールする
Ubuntu 18.04 LTS に VM サーバをインストールする -
sidfmd-start.sh ファイルを編集します。sidfmd-start.sh を編集し、80/tcp(http) の設定を削除します。
# vi sidfmd-start.sh
[修正前]sudo docker container run -td -p 80:80 -p 443:443 --name=sidfmd sidfmd
[修正後]sudo docker container run -td -p 443:443 --name=sidfmd sidfmd
-
VM サーバを一度停止します。
# ./sidfmd-stop.sh
-
2.で編集されたスクリプトを利用して、VM サーバを起動します。
# ./sidfmd-start.sh
# docker exec sidfmd /vm_manage server enable
# docker exec sidfmd /vm_manage issue_update enable
「already enabled」というメッセージが出力される場合がありますが、動作に影響はありませんので無視してください。
HTTPS 化の解除
HTTPS 化の解除手順です。
-
VM サーバをインストールしたホストで以下のコマンドを実行します。
$ sudo docker exec sidfmd /ca -clean
$ sudo docker exec sidfmd /vm_manage server disable
$ sleep 5
$ sudo docker exec sidfmd /vm_manage server enable
VM エージェントの証明書ファイルの設定方法
VM エージェントへの証明書ファイルの設定手順です。
通常通り VM エージェント のインストールが終了した状態を前提とします。
VM エージェントへ証明書ファイルの設定が必要な場合は、SSL 証明書のベンダが発行した SSL 証明書以外の証明書による HTTPS 化(組織内CAや自己署名証明書)を行い、かつ、VM サーバと VM エージェントとの通信を HTTPS にしたい場合に限ります。
HTTP での通信のみの場合や、SSL 証明書のベンダが発行した SSL 証明書を利用する場合には、VM エージェントに証明書ファイルを設定する必要はありません。
HTTP での通信のみの場合や、SSL 証明書のベンダが発行した SSL 証明書を利用する場合には、VM エージェントに証明書ファイルを設定する必要はありません。
[Ubuntu/Debian、REHL/CentOS]
-
root 権限で以下のコマンドを実行し、証明書ファイル (vm-server.crt) をインストールします。
# /opt/softek/bin/ca_install.sh vm-server.crt
[Windows]
-
以下の手順で証明書の登録を行います。
1. 証明書 (vm-server.crt) を右クリック
2. 証明書のインストール
3. 「信頼されたルート証明機関」の証明書ストアへインストール
設定完了後、VM エージェントで、generate_config.rb(Windows 版では generate_config.ps1) の API URL の指定を http:// から https:// に変更して実行することで、VM サーバへのアクセスに https を利用するようになります。
クラウドタイプのエージェント設定について
クラウドタイプの場合、証明書のインストールは必要ありませんが、エージェントの HTTPS 化が必要です。 VM エージェントで、generate_config.rb (Windows 版では generate_config.ps1)の API URL の指定を http:// から https:// に変更して実行してください。