こんにちは。CData Software Japanの色川です。
CData ArcESB はWeb Console を通じて運用管理を行うサーバ製品です。データソースとの連携ではArcESB からアクセスするケースが多くを占めますが、Web Console を通じた運用操作や、それ以外でもWebhook の受信など幾つかの機能で「ArcESB が外部からのアクセスを受け付ける側となる機能」を提供しており、ArcESB 自身をHTTPS 構成にして運用したいケースがあります。
例えば、以下のような機能を利用する時には、ArcESB と外部との通信を暗号化したいケースが多いかも知れません。
特にWebhook ではイベントを受信する側(この場合、ArcESB)にHTTPS での待ち受けを必須として求めるSaaS も多く、Webhook を利用したいケースでは評価・検証の段階からHTTPS で環境構成をする必要があるかも知れません。またHTTPS 構成でも自己発行証明書ではダメなケース(Webhook で通知するSaaS 側が許容しないケース)もあると思います。
CData ArcESB やCData の他のサーバ製品を含め、Web アプリケーションをHTTPS 構成する方法は幾つかあると思いますが、この記事では「検証・評価のために手早く簡単に構成したい」時をイメージして、無料のSSL 証明書も発行可能なZeroSSL で発行した証明書を使って、CData ArcESB をHTTPS で構成する方法をご紹介します。
CData サーバ製品のHTTPS 構成については、これらの記事でもご紹介しています。AWS やAzure、GCP のサービスに慣れている方はこれらの記事でご紹介している方法が、より手軽かも知れません。目的や環境に合う方法を選択してください。
ZeroSSL とは
無料のサーバ証明書と言えば、Let's Encrypt が有名ですが、Certbot の使い方など慣れない方には少し難しい部分もあるかと思います。ZeroSSL はLet's Encrypt と同じように無料のSSL 証明書を(も)発行可能なサービスですが、Web ブラウザでの操作で比較的簡単に証明書の発行・取得ができるのが特長です。またIP アドレスでのサーバ証明書が発行できる点も、検証・評価のために「手早く簡単に構成したい」時には便利かも知れません。(検証用のドメイン名を用意するのが面倒くさいケースもありますよね)
この記事のシナリオ
この記事では、評価・検証のためのトライアルで利用されることが多いCData ArcESB のWindows 版を対象に、ZeroSSL でSSL サーバ証明書を発行して、CData ArcESB をHTTPS で構成します。
記事の一部で、Web サーバ(ZeroSSL で所有権の検証をするため)や、OpenSSL(PKCS#12 形式の証明書を作成するため)を利用しますが、いずれも「手早く簡単に」進められるように、できるだけシンプルでポータブルなモノ(コピーインストールで実行可能なモノ、など)で進めています。
事前準備
Windows + ArcESB
インターネットからのアクセスが可能なWindows OS 環境に、CData ArcESB をインストールしておいてください。ZeroSSL ではIP アドレスでも証明書を発行できるので、対象のWindows 環境に対してドメイン名の割当は必ずしも必要ではありません。CData ArcESB のインストール手順はこちらを参考にしてください。
対象のWindows 環境が、ドメイン名またはIP アドレス
でインターネットからアクセス可能なことを確認しておいてください。この記事ではCData ArcESB は既定のポート番号のまま構成しています。ファイアウォールは下記のポートが外部からアクセス可能なように構成しておいてください。
ポート番号 | memo |
---|---|
80 | ZeroSSL で所有権を検証する時に必要です |
8001 | CData ArcESB の既定ポート(HTTP) |
8401 | CData ArcESB の既定ポート(HTTPS) |
簡単Web サーバー
ZeroSSL で証明書を発行する際には、対象の ドメイン名またはIP アドレス
の所有権について検証(ZeroSSL からの確認)が必要です。幾つか方法がありますが、この記事ではドメイン設定等の必要がない(HTTP での)Auth ファイルのアクセスで検証する方法で進めます。
この時、Auth ファイルをホストするWeb サーバが必要ですが、この記事ではWindows 環境で簡単かつポータブルに静的ファイルをホストできる、こちらのフリーソフトを利用しました。(もちろんIIS 等を利用しても構いません。ArcESB の組み込みWeb サーバでも構いませんが、この記事ではWeb サーバの設定等に不慣れな方でも進めやすい方法を選択しました)
OpenSSL Portable for Windows
Windows 版でHTTPS 構成にするには、ZeroSSL でダウンロードできる証明書(や自動生成した秘密鍵)からPKCS#12 形式の証明書(秘密鍵つき証明書)の生成が必要です。この記事ではポータブル実行可能なOpenSSL をダウンロードして用意しました。
ZeroSSL で発行したSSL サーバ証明書を使って、CData ArcESB をHTTPS で構成する
ZeroSSL のアカウント作成
ZeroSSL での証明書発行にはアカウントが必要です。
証明書の発行
HTTPS でアクセス可能にしたい ドメイン名またはIP アドレス
を指定します。
この記事では、無料で利用可能な90日間有効な証明書を選択します。
この記事では、CSR は自動生成します(この記事は、検証・評価のために手早く簡単にHTTPS 化したい方向けのため、既存の鍵情報を利用した証明書発行手順などは、この記事のスコープ外です)
ドメインの検証
発行しようとしている ドメイン名またはIP アドレス
の所有権を持っていることを検証するプロセスが必要です。
DNS 設定など幾つかの方法がありますが、この記事では発行しようとしている ドメイン名またはIP アドレス
のWeb サーバに、指定されたファイルを指定された仮想パスで配置する(それをZeroSSL からアクセスして確認する事で所有権を検証する)方法で設定します。
Auth File をダウンロードして、ZeroSSL から指定されている仮想パスを構成するためのフォルダ・ファイルを配置します。この記事では、以下のディレクトリに配置しました。
C:\Test.well-known\pki-validation[Auth File]
【memo】
Windows で隠しフォルダに相当する.(ドット)から始まるディレクトリは、新しいフォルダーからそのまま作成しようとするとエラーとなるため、コマンドプロンプトやPowerShell を利用するか、エクスプローラーから作成したい時は、名前の後にも. を入力することで作成できます。(.well-known ディレクトリを作成したい場合、.well-known. と入力してEnter)
簡易Web サーバーを起動して、ファイルのパスに [C:\Test.well-known] を追加して、待ち受けを開始します。
外部から、http://ドメイン名またはIP アドレス
/.well-known/pki-validation/[取得した Auth File] でアクセスできることを確認します。
ZeroSSL からVerify Domain で所有権の検証をします。検証が完了すると、証明書のダウンロードが可能になります。
証明書のダウンロード
Default Format でダウンロードします。
zip を展開して、以下のファイルが取得できていることを確認してください。
PKCS#12 形式の証明書作成
Windows 環境(CData ArcESB Windows 版)では、PKCS#12 形式の証明書が必要です。取得した秘密鍵とサーバ証明書から、OpenSSL コマンドで生成します。
この記事では、OpenSSL Portable for Windows を使いますが、他にOpenSSL 実行環境がある方はそちらで実行しても構いません。この記事ではOpenSSL Portable for Windows とZeroSSL からダウンロードした証明書を以下のディレクトリに配置しました。
- C:\Test\OpenSSL Portable for Windows\openssl.exe など
- C:\Test[ダウンロードした証明書を解凍したフォルダ名]\certificate.crt など
コマンドプロンプトでopenssl.exe のあるディレクトリに移動して、openssl コマンドで生成します。Export Password が確認されますので、任意に設定してください。
cd - C:\Test\OpenSSL Portable for Windows\ openssl.exe pkcs12 -export -inkey C:\Test\[ダウンロードした証明書を解凍したフォルダ名]\private.key -in C:\Test\[ダウンロードした証明書を解凍したフォルダ名]\certficate.crt -out C:\Test\[ダウンロードした証明書を解凍したフォルダ名]\[任意の名前].pfx
証明書のインストール
生成したPKCS#12 形式の証明書を、HTTPS 化したいサーバへインストールします。
CData ArcESB の設定(証明書の指定とHTTPS の有効化)
CData ArcESB で、利用する証明書と、TLS 通信(HTTPS)を有効化・保存した後、ArcESB を再起動します。
HTTPS 構成の確認
https:// ドメイン名またはIP アドレス
:8401/ でArcESB へアクセスして、HTTPS 構成になっていることを確かめてください。
これでWebhook コネクタのエンドポイントなども、HTTPS で構成することができます。
まとめ
この記事では、検証・評価のためにHTTPS アクセス可能な環境を「手早く簡単に構成したい」時などをイメージして、比較的手軽な手順で無料のSSL 証明書の(も)取得が可能なZeroSSL を利用して、CData ArcESB 以外のソフトウェア設定があまり必要ない(他のソフトウェア設定に影響の少ない)手順をご紹介しました。
自前で証明書を取得して、自前でインストール・設定する(いわば「ベタ」な)方法なので、OS 実行環境のプラットフォームやサービスを問わず、利用頂ける方法かと思います。
この記事では ArcESB™ 2021 - 21.0.8108
を利用しています。