OnTimeサーバーにTLS(SSL)証明書を設定する(Ver.3.7以降)

0.よく閲覧される記事, 4.管理者

注意

  • Ver.3.7.0よりHTTPS通信はTomcatに実装し直しました。今後”URLForwarder”サービスは利用しません。
  • Ver.4.1.0より独自のプライベート認証局の証明書は公式にはサポートされなくなりました。
    出来るだけ速やかにパブリック認証局による証明書に切り替えてください。
  • Ver.4.1.8よりOnTimeMS ACSは内部実装に切り替わっております。別途サービスとしてインストールされなくなりました。
    また実装方法が変更されたことで利用ポートなど変更されております。ontime.ms.acs.iniは修正するようお願いいたします。

1.はじめに

OnTimeはVer.3.7よりHTTPS通信はTomcatに実装し直しました。今後”URLForwarder”サービスは利用しません。
但し以下の2つの認証機能を利用する場合は引き続き従来のSSLの実装も必要となります。
通常はメールによるワンタイムトークン発行による認証方式をお勧めしています。
よって下記2つの機能を使わない場合は本FAQでご案内するSSLの実装だけでご利用頂けます。

  1. 「OnTime AD Web Authentication (SSO) 」
    “OnTimeMS Auth”サービス
    ADにログインしているWindows端末でブラウザのSSOを行う機能
  2. 「OnTime ADFS login Authentication (ACS) 」
    “OnTimeMS ACS”サービス
    ADFSを利用したAccess Control ServiceでSSOを行う機能

TLS証明書をOnTimeに実装する場合、Ver.4.1.8以降はこのFAQページに基づいた実装のみ設定をお願いいたします。
但し、OnTime管理センターのユーザーの認証方法の選択肢で「HTTPS Domain(SSO)」を選択した場合のみ「OnTimeサーバーにSSL証明書を設定する(OnTime ACS 及び OnTime Auth)」のリンク先の実装も行って下さい。
「HTTPS Domain(SSO)」はいわゆるWindows統合認証のことです。ちなみに現在のOnTimeの推薦する認証方法は以下の二つです。

  1. 「HTTPS ADFS(SSO)」
    AzureADによるシングルサインオンを行う方法。
    →メリット
    Microsoft365等と同じ認証方法になることで一体感がある。
    →デメリット
    AzureADでエンタープライズアプリケーションの登録が必要。マルチテナントで利用出来ない。
  1. 「HTTPS Mail Auth」
    利用するメールアドレスのメールボックスに本人確認用のリンク付きメールを送り、そのリンクを15分以内にクリックが行われることで認可する方法。いわゆるマジックリンク認証方法です。
    →メリット
    実装が簡単。外部連携の設定を必要としない。
    TLS証明書の実装を必要としない「HTTP Mail Auth」もある。
    マルチドメイン設定でも利用出来る。
    →デメリット
    認証方式が他のMicrosoft365と違う。

2.OnTime Tomcat へのTLS(SSL)証明書の実装

Tomcatの実装方法に基づき、OnTimeでは以下の3つのファイルを準備して配備します。
ダウンロード頂いたプログラムではTomcatのserver.xml(Ontime.x.x\tomcat\conf内)に予めpemファイル名と保存先のフォルダを記述していますので下記の手順で作成する3つのファイル名は同じ名前でご準備下さい。
1. ontime-rsa-key.pem
2. ontime-rsa-cert.pem
3. ontime-rsa-chain.pem

3.3つのpemファイル作成方法

OnTimeサーバーをSSL化するには.pfx形式か.p12形式の証明書ファイルを先にご準備下さい。
この証明書ファイルからOpenSSLを利用して3つのPemファイルを作成します。
OpenSSLツールはご自身でご準備下さい。

次にOpenSSL用に準備した環境で以下のコマンドを順に実行して3つのpemファイルを準備します。
xxxx.pfxファイルはご準備された証明書ファイルです。適宜修正して実行して下さい。

  1. 証明書ファイルからサーバーの秘密鍵を取得します。
    以下のコマンドを実行することでパスワードで保護されたprivate.pemファイルが生成されます。
    openssl pkcs12 -nodes –nocerts -in xxxxx.pfx -out private.pem

  2. 続いてprivate.pemファイルからパスワードを削除します。
    以下のコマンドを実行することでパスワードなしのサーバー秘密鍵が含まれたontime-rsa-key.pemファイルが生成されます。
    openssl rsa -in private.pem -out ontime-rsa-key.pem

  3. 証明書ファイルからサーバー証明書を取得します。
    以下のコマンドを実行することでサーバー証明書が含まれたontime-rsa-cert.pemファイルが生成されます。
    openssl pkcs12 -in xxxxx.pfx -clcerts -nokeys -out ontime-rsa-cert.pem

  4. 証明書ファイルから証明書チェーンを抽出します。
    以下のコマンドを実行することでサーバー証明書に関連付けられた証明書チェーン、ルートCA、および中間CAが含まれたontime-rsa-chain.pemファイルが生成されます。
    openssl pkcs12 -nokeys -in xxxxx.pfx -out ontime-rsa-chain.pem

4.OnTime Tomcatへの3つのpemファイルの配備

3つのpemファイルの準備が同じくserver.xmlで指定した以下のフォルダに3つのpemファイルをコピーしてください。
(keysは全て小文字です)
C:\ProgramData\IntraVision\OnTimeGCMS\keys\

最後に念のためOSの再起動(少なくともサービスからTomcatの再起動)を行ってください。以上で実装は完了します。

5.補足(http通信もhttps通信にリダイレクトする方法)

ちなみにhttpもhttpsにリダイレクトさせたい場合は、以下のOnTime管理センターの「HTTPSへのリダイレクト」にチェックをつけてください。

関連記事一覧