紹介
Liferay Supportは、特定のサードパーティ製品を他の製品よりも推奨または承認するものではありません。 Liferayは、これらの製品に関して、ここに記載または参照されているいかなる指示に対しても責任を負いません。 これらの原則の実行は、加入者の責任において行われるものとします。
今回は、Apacheのような外部サーバーを使わずに、TomcatでHTTPSを設定する方法の例を説明します。 以下の手順はLiferay DXP 7.3のものですが、Liferay DXPの他のバージョンに適用するためにマイナーチェンジすることができます。主な変更点はTomcatの server.xml
<Connector> の設定内容です。
環境
- DXP 7.3
- Apache Tomcat 9.x
解像度
keytool
を使用して自己署名証明書を作成します。
- ターミナルを開き、Liferay DXP 7.3 バンドル内の tomcat フォルダにアクセスします。 例 /home/user/Liferay/Bundles/liferay-dxp-7.3.10-ga1/tomcat-9.0.37
keytool -genkey -alias tomcat -keyalg RSA -keystore keystore
このターミナルで、次のコマンドを実行します。- 必要な情報を入力し、必要に応じて新しいパスワードを入力してください。 問われる質問の一例:
あなたの姓と名を教えてください。
[Unknown]ジョー・ブロッグス
組織単位の名称をお聞かせください。
[Unknown]: ライファ
組織名を教えてください。
[Unknown](株)ライフレイ
あなたの市町村の名称は何ですか?
[Unknown]: シカゴ
あなたの州や県の名前は何ですか?
[Unknown]: IL
本機の2文字の国番号は何ですか?
[Unknown]私たち
CN=joe bloggs, OU=liferay, O=liferay inc, L=Chicago, ST=IL, C=usは正しいですか?
[no]: y
キーストアが作成されたので、サーバーの証明書をエクスポートします:
4. keytool -export -alias tomcat -keypass changeit -file server.crt -keystore keystore
そのためには、手順3と同じターミナルから、次のコマンドを使用します。
次に、サーバーの証明書をJDKのデフォルトのtrustStoreファイルであるcacertsにインポートします:
5. 注意点としては、使用するターミナルはLiferayバンドルのTomcatフォルダを開いておくことです。 ただし、コマンドのターゲットはJDKのcacertsファイルになります。 例: keytool -import -alias tomcat -file server.crt -keypass changeit -keystore "/usr/lib/jvm/java-8-oracle/jre/lib/security/cacerts"
注意 - このプロセスが以前に完了したことがある場合、JVMは以前に使用されたパスワード("changeit")を期待している可能性があります。
Tomcatのserver.xmlファイルを更新し、SSLを設定する:
6. 次に、Tomcatのserver.xmlファイル(/tomcat-9.0.37/conf/server.xml)を以下のように更新してください。 前述の通り、以下はLiferay DXP 7.3にバンドルされているTomcatのバージョンに対応したものです。
6A. 以下の <コネクターを取り外します:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
6B. 以下を追加し、必要に応じて keystoreFile および keystorePass の値を更新します:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${user.home}/.keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>
Liferay DXP 7.3バンドルをSSL通信を期待するようにアップデートします:
- Liferay DXP 7.3 バンドルの portal-ext.property ファイルに、DXP が https を使用するように指示する以下のプロパティを追加します:...
web.server.protocol=https
初期化されたバンドルにアクセスする:
- https://localhost:8443にアクセスしてください。自己署名証明書はほとんどの最新ブラウザで信頼されないため、ブラウザのセキュリティ通知や警告を受け入れる必要がある場合があります。
追加情報
サイト全体でHTTPSを使用するように設定するには、portal-ext.propertiesで次のように設定します: web.server.protocol=https
ログインページのみを HTTPS にする場合は、portal-ext.properties で次のように設定します。 company.security.auth.requires.https=true
。
SSL本番環境において、SSL証明書が「Trusted Root」でないと定義する「Certificate Error」を受け取った場合、認証局プロバイダーから電子署名を取得する必要がある場合があります。