CData Software Blog

クラウド連携のCData Software の技術ブログです。

ZeroSSL で発行したSSL サーバ証明書を使って、CData ArcESB をHTTPS で構成する方法

f:id:irokawah:20220323175022p:plain

こんにちは。CData Software Japanの色川です。

CData ArcESB はWeb Console を通じて運用管理を行うサーバ製品です。データソースとの連携ではArcESB からアクセスするケースが多くを占めますが、Web Console を通じた運用操作や、それ以外でもWebhook の受信など幾つかの機能で「ArcESB が外部からのアクセスを受け付ける側となる機能」を提供しており、ArcESB 自身をHTTPS 構成にして運用したいケースがあります。

例えば、以下のような機能を利用する時には、ArcESB と外部との通信を暗号化したいケースが多いかも知れません。

  • 外部からのイベントを受信するためのWebhook コネクタ
  • DBMS 系データソースをWeb API として公開可能にするAPI コネクタ
  • 外部からArcESB を操作する管理API の利用

特にWebhook ではイベントを受信する側(この場合、ArcESB)にHTTPS での待ち受けを必須として求めるSaaS も多く、Webhook を利用したいケースでは評価・検証の段階からHTTPS で環境構成をする必要があるかも知れません。またHTTPS 構成でも自己発行証明書ではダメなケース(Webhook で通知するSaaS 側が許容しないケース)もあると思います。

CData ArcESB やCData の他のサーバ製品を含め、Web アプリケーションをHTTPS 構成する方法は幾つかあると思いますが、この記事では「検証・評価のために手早く簡単に構成したい」時をイメージして、無料のSSL 証明書も発行可能なZeroSSL で発行した証明書を使って、CData ArcESB をHTTPS で構成する方法をご紹介します。

CData サーバ製品のHTTPS 構成については、これらの記事でもご紹介しています。AWS やAzure、GCP のサービスに慣れている方はこれらの記事でご紹介している方法が、より手軽かも知れません。目的や環境に合う方法を選択してください。

www.cdatablog.jp

www.cdatablog.jp

ZeroSSL とは

無料のサーバ証明書と言えば、Let's Encrypt が有名ですが、Certbot の使い方など慣れない方には少し難しい部分もあるかと思います。ZeroSSL はLet's Encrypt と同じように無料のSSL 証明書を(も)発行可能なサービスですが、Web ブラウザでの操作で比較的簡単に証明書の発行・取得ができるのが特長です。またIP アドレスでのサーバ証明書が発行できる点も、検証・評価のために「手早く簡単に構成したい」時には便利かも知れません。(検証用のドメイン名を用意するのが面倒くさいケースもありますよね)

zerossl.com

この記事のシナリオ

この記事では、評価・検証のためのトライアルで利用されることが多いCData ArcESB のWindows 版を対象に、ZeroSSL でSSL サーバ証明書を発行して、CData ArcESB をHTTPS で構成します。

記事の一部で、Web サーバ(ZeroSSL で所有権の検証をするため)や、OpenSSL(PKCS#12 形式の証明書を作成するため)を利用しますが、いずれも「手早く簡単に」進められるように、できるだけシンプルでポータブルなモノ(コピーインストールで実行可能なモノ、など)で進めています。

事前準備

Windows + ArcESB

インターネットからのアクセスが可能なWindows OS 環境に、CData ArcESB をインストールしておいてください。ZeroSSL ではIP アドレスでも証明書を発行できるので、対象のWindows 環境に対してドメイン名の割当は必ずしも必要ではありません。CData ArcESB のインストール手順はこちらを参考にしてください。

www.cdatablog.jp

対象の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 サーバの設定等に不慣れな方でも進めやすい方法を選択しました)

www.vector.co.jp

OpenSSL Portable for Windows

Windows 版でHTTPS 構成にするには、ZeroSSL でダウンロードできる証明書(や自動生成した秘密鍵)からPKCS#12 形式の証明書(秘密鍵つき証明書)の生成が必要です。この記事ではポータブル実行可能なOpenSSL をダウンロードして用意しました。

sourceforge.net

ZeroSSL で発行したSSL サーバ証明書を使って、CData ArcESB をHTTPS で構成する

ZeroSSL のアカウント作成

ZeroSSL での証明書発行にはアカウントが必要です。

f:id:irokawah:20220323173829j:plain

証明書の発行

HTTPS でアクセス可能にしたい ドメイン名またはIP アドレス を指定します。

f:id:irokawah:20220323173846j:plain

この記事では、無料で利用可能な90日間有効な証明書を選択します。

f:id:irokawah:20220323173903j:plain

この記事では、CSR は自動生成します(この記事は、検証・評価のために手早く簡単にHTTPS 化したい方向けのため、既存の鍵情報を利用した証明書発行手順などは、この記事のスコープ外です)

f:id:irokawah:20220323173913j:plain

ドメインの検証

発行しようとしている ドメイン名またはIP アドレス の所有権を持っていることを検証するプロセスが必要です。

DNS 設定など幾つかの方法がありますが、この記事では発行しようとしている ドメイン名またはIP アドレス のWeb サーバに、指定されたファイルを指定された仮想パスで配置する(それをZeroSSL からアクセスして確認する事で所有権を検証する)方法で設定します。

f:id:irokawah:20220323173940j:plain

Auth File をダウンロードして、ZeroSSL から指定されている仮想パスを構成するためのフォルダ・ファイルを配置します。この記事では、以下のディレクトリに配置しました。

C:\Test.well-known\pki-validation[Auth File]

f:id:irokawah:20220323173956p:plain

【memo】
Windows で隠しフォルダに相当する.(ドット)から始まるディレクトリは、新しいフォルダーからそのまま作成しようとするとエラーとなるため、コマンドプロンプトPowerShell を利用するか、エクスプローラーから作成したい時は、名前の後にも. を入力することで作成できます。(.well-known ディレクトリを作成したい場合、.well-known. と入力してEnter)

簡易Web サーバーを起動して、ファイルのパスに [C:\Test.well-known] を追加して、待ち受けを開始します。

f:id:irokawah:20220323174036p:plain

外部から、http://ドメイン名またはIP アドレス/.well-known/pki-validation/[取得した Auth File] でアクセスできることを確認します。

f:id:irokawah:20220323174044p:plain

ZeroSSL からVerify Domain で所有権の検証をします。検証が完了すると、証明書のダウンロードが可能になります。

f:id:irokawah:20220323174103p:plain

証明書のダウンロード

Default Format でダウンロードします。

f:id:irokawah:20220323174114j:plain

zip を展開して、以下のファイルが取得できていることを確認してください。

f:id:irokawah:20220323174135p:plain

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 が確認されますので、任意に設定してください。

f:id:irokawah:20220323174213p:plain

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 化したいサーバへインストールします。

f:id:irokawah:20220323174230p:plain

f:id:irokawah:20220323174237p:plain

f:id:irokawah:20220323174249p:plain

CData ArcESB の設定(証明書の指定とHTTPS の有効化)

CData ArcESB で、利用する証明書と、TLS 通信(HTTPS)を有効化・保存した後、ArcESB を再起動します。

f:id:irokawah:20220323174307p:plain

f:id:irokawah:20220323174316p:plain

f:id:irokawah:20220323174323p:plain

HTTPS 構成の確認

https:// ドメイン名またはIP アドレス:8401/ でArcESB へアクセスして、HTTPS 構成になっていることを確かめてください。

f:id:irokawah:20220323174337p:plain

これでWebhook コネクタのエンドポイントなども、HTTPS で構成することができます。

f:id:irokawah:20220323174348p:plain

まとめ

この記事では、検証・評価のためにHTTPS アクセス可能な環境を「手早く簡単に構成したい」時などをイメージして、比較的手軽な手順で無料のSSL 証明書の(も)取得が可能なZeroSSL を利用して、CData ArcESB 以外のソフトウェア設定があまり必要ない(他のソフトウェア設定に影響の少ない)手順をご紹介しました。

自前で証明書を取得して、自前でインストール・設定する(いわば「ベタ」な)方法なので、OS 実行環境のプラットフォームやサービスを問わず、利用頂ける方法かと思います。


この記事では ArcESB™ 2021 - 21.0.8108 を利用しています。