概要
TDV StudioからTDV Serverに接続する際に、TDV Studioが使用するトラストストア ファイルが、TDV ServerにアタッチされているSSL証明書やTDV Serverのフロントに配置されているロードバランサにアタッチされたSSL証明書をカバーできていない場合、ログインできないことがあります。
そのとき、cs_studio.log
には以下のようなログが出力されています。
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
このような事象が発生した場合に、TDV Studioが使用するトラストストア ファイルに当該ルート証明書をインポートし、正常に接続するための手順を説明します。
本記事におけるケース
本記事は、AWSのEC2インスタンス上で実行中のTDV Serverに対しNetwork Load BalancerでTLS接続を終端させる下図のような構成において、ACMより払い出しアタッチしたSSL証明書がTDV Studioのトラストストア ファイルによってカバーされておらず、暗号化通信ができなくなったケースを想定して記述しています。
検証環境
製品 | バージョン | 実行環境 |
---|---|---|
TDV Server | 8.8.0 | Red Hat Enterprise Linux release 8.9 (Ootpa) |
TDV Studio | 8.8.0 | Windows 10 |
TDV Studioインストール方式による作業フォルダの違い
以降の説明では、<TDV Studio または TDV Serverインストールフォルダ>
という表記を用いますが、TDV Studioのインストール方式がいかのいずれかによって、置換すべきフォルダパスが異なります。
TDV Serverと同時にインストールされるTDV Studioの場合
Windows PC もしくは WindowsサーバーにTDV Serverをインストールした場合は、TDV Studioも同時にインストールされます。
デフォルトでは、C:\Program Files\TIBCO\TDV Server 8.8\apps\studio
にTDV Studioがインストールされます。
したがって、この場合は、<TDV Studio または TDV Serverインストールフォルダ>
を
C:\Program Files\TIBCO\TDV Server 8.8
に置き換えてください。
ただし、インストール時にインストールフォルダパスをデフォルト値以外のものに変更している場合は、そのフォルダパスに従ってください。
単体でインストールされるTDV Studioの場合
Windows PC もしくは WindowsサーバーにTDV Studio専用のインストーラでTDV Studio単体でインストールすることができます。
デフォルトでは、C:\TIBCO\TDV Studio 8.8
にTDV Studioがインストールされます。
場合は、<TDV Studio または TDV Serverインストールフォルダ>
を
C:\TIBCO\TDV Studio 8.8
に置き換えてください。
ただし、インストール時にインストールフォルダパスをデフォルト値以外のものに変更している場合は、そのフォルダパスに従ってください。
ルート証明書の入手および配置
Amazon Trust Services Repository(2024年11月時点でリンクは有効)から必要なルート証明書をダウンロードします。
ここではAmazonRootCA1.cerをダウンロードします。
ダウンロードしたルート証明書を以下に配置します。
<TDV Studio または TDV Serverインストールフォルダ>\conf\studio\security\AmazonRootCA1.cer
cis_studio_truststore.jks
のバックアップ
<TDV Studio または TDV Serverインストールフォルダ>\conf\studio\security\cis_studio_truststore.jks
をバックアップとして別名のファイルにコピーしておきます。
amazonrootca1の削除
amazonrootca1というエイリアスでルート証明書をインポートする予定のため、同じエイリアスの証明書を削除しておきます。
コマンドプロンプトを起動し、以下のコマンドを実行します。
"<TDV Studio または TDV Serverインストールフォルダ>\jdk\bin\keytool" -delete -alias amazonrootca1 -keystore "<TDV Studio または TDV Serverインストールフォルダ>\conf\studio\security\cis_studio_truststore.jks" -storepass changeit
同名のエイリアスが存在していれば削除され、存在していなければ、以下のようにエラーとなります。
keytoolエラー: java.lang.Exception: 別名<amazonrootca1>は存在しません
ルート証明書のインポート
<TDV Studio または TDV Serverインストールフォルダ>\conf\studio\security\cis_studio_truststore.jks
にルート証明書をインポートします。
"<TDV Studio または TDV Serverインストールフォルダ>\jdk\bin\keytool" -trustcacerts -keystore "<TDV Studio または TDV Serverインストールフォルダ>\conf\studio\security\cis_studio_truststore.jks" -storepass changeit -import -alias amazonrootca1 -file "<TDV Studio または TDV Serverインストールフォルダ>\conf\studio\security\AmazonRootCA1.cer"
amazonrootca1が<TDV Serverインストールフォルダ>jdk\lib\security\cacerts
にすでに存在するとの警告が出ますが、cis_studio_truststore.jks
にインポートします。
証明書は、別名<amazonrootca1 [jdk]>のシステム規模のCAキーストア内にすでに存在します
キーストアに追加しますか。 [いいえ]: Y
証明書がキーストアに追加されました
インポート後に正常にインポートされたことを確認します。
"<TDV Studio または TDV Serverインストールフォルダ>\jdk\bin\keytool" -list -alias amazonrootca1 -keystore "<TDV Studio または TDV Serverインストールフォルダ>\conf\studio\security\cis_studio_truststore.jks" -storepass changeit
amazonrootca1,2024/11/15, trustedCertEntry,
証明書のフィンガプリント(SHA-256): 8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E