問題
- 外部サービスとの通信を可能にするために、Liferay DXPが動作するサーバーのJVMに証明書をインポートする必要がある場合があります。 以下は、DXPクラウド上でこれを達成する方法です。
環境への配慮
- DXPクラウド
決議
証明書ファイルの追加
証明書ファイルをインポートできるようにするには、 /lcp/liferay
に certificates
という名前のフォルダを作成し、 .pem / .cert ファイルをその上に置いてください。 以下の例では、正しい保存方法を示しています。
/lcp/liferay/certificates/yourcertfile.pem
証明書をインポートするスクリプトの作成
さて、 .sh ファイルを作成して、Liferay DXPの起動時に実行し、 Java Keytoolを使用して証明書をインポートする必要があります。 あなたのスクリプトは次のようになります。
#!/bin/bash
keytool -import -alias ALIAS -keystore /opt/jdk/jre/lib/security/cacerts -file /lcp-container/certificates/YOUR_CERT_FILE -storepass changeit -noprompt
ALIAS と YOUR_CERT_FILE を必要に応じて置き換える必要があります。 証明書 liferay.pem
をインポートしたい場合は、例えばエイリアス liferay
を使用して、以下の例のスクリプトを使用することができます。
#!/bin/bash
keytool -import -alias liferay -keystore /opt/jdk/jre/lib/security/cacerts -file /lcp-container/certificates/liferay.pem -storepass changeit -noprompt
このスクリプトファイルは、 /lcp/liferay/scripts/<env>
にあり、証明書をインポートする環境に合わせて <env>
を変更する必要があります。 UAT
にインポートしたい場合、例えば、スクリプトファイルは /lcp/liferay/scripts/uat
にあるはずです。
重要です。 スクリプトファイルが実行可能であることを確認してください。 もしそうでない場合は、パーミッションを変更することができます。
chmod +x script.sh
重要[2]: Liferayサービスイメージのバージョンが 3.0.19 よりも古いものを使用している場合、このスクリプトは動作しません。 Liferayのサービススタックのバージョンをアップグレードしてください。
デプロイとインポート
これで、証明書のインポートをトリガーするためのコミットとデプロイの準備が整いました。 ビルドをデプロイした後、Liferayのサービスログを調べることができます。 のようなものが見られるはずです。
[liferay-5d59984f96-smz62] Running /lcp-tmp/script/import.sh
[liferay-5d59984f96-smz62] Certificate was added to keystore