Liferayサポートは、特定のサードパーティ製品を他の製品よりも推奨したり、推薦したりすることはありません。 Liferayは、これらの製品に関して、ここに記載または参照されているいかなる指示にも責任を負いません。 これらの原則を実行するのは、サブスクライバの責任です。
この記事では、Apacheなどの外部サーバーを使わずにTomcatでHTTPを設定する方法を説明します。 公開されているwikiページには既存のwikiがありますが、以下ではよりユーザーフレンドリーなHTTPsの設定方法を紹介します。
環境
- Liferay DXP 7.0
- Liferay Portal 6.2 EE
解像度
keytoolを使って自己署名証明書を作成します。
- tomcatのフォルダ(例:
C:001\tomcat-6.0.29
)でコマンドプロンプトを開き、以下のコマンドを入力します。keytool -genkey -alias tomcat -keyalg RSA -keystore keystore
- いくつかの情報を入力するように促されます。 異なるフィールドに何を使うかは問題ではありませんが、パスワードとして changeit を使うようにしてください。
- キーストアのパスワードを入力します。 changeit となります。
- 新しいパスワードを再入力します。 changeit となります。
- あなたのファーストネームとラストネームを教えてください。
- [Unknown]: ジョー・ブロッグス
- あなたの組織単位の名前は何ですか?
- Unknown:] liferay
- 組織の名前を教えてください。
- [Unknown]: ライフレイ社
- あなたの都市や地域の名前は何ですか?
- [Unknown]:ダイヤモンドバー
- あなたの国や州の名前は何ですか?
- [Unknown]: ca
- このユニットの2文字の国コードは何ですか?
- [Unknown]: us
CN=joe bloggs, OU=liferay, O=liferay inc, L=diamond bar, ST=ca, C=us correct? [no]: yes
次に、先ほど生成した証明書を使用するようにTomcatを設定します。 編集 TOMCAT_HOMEconf\server.xml
.
SSLセクションのコメントを外し、keystoreFileパラメータを追加して以下のようにします。
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:/liferay/bundles/liferay-portal-6.0-ee/tomcat-6.0.29/keystore" keystorePass="changeit" />
今度は、証明書をJVMのキーストアにインポートします。 これは、LiferayがTomcatにhttpsリクエストを行う際に、エラーなく処理が進むように、この証明書が「信頼された」証明書であることをJVMに伝えるものです。
手順1で生成した鍵ストアから鍵をエクスポートします。 これにより、証明書を抽出し、JVMのストアにインポートすることができます。
keytool -export -alias tomcat -keypass changeit -file server.crt -keystore keystore
証明書をJVMにインポートします。 "cacerts "は、JVMキーストアのファイル名です。 ( %JAVA_HOME%
にあるはずです)
keytool -import -alias tomcat -file server.crt -keypass changeit -keystore "C:\Program Files\Java\jre6\lib\security\cacerts"
*ローカルの設定によっては、cacertsファイルのアクセス権を変更しなければならない場合があります。
これで、 https://localhost:8443でウェブサイトにアクセスできるようになります。
追加情報
- サイト全体でHTTPSを使用するようにするには、portal-ext.propertiesで次のように設定する。
web.server.protocol=https
- ログインページのみをHTTPSにする場合は、portal-ext.propertiesで設定する。
company.security.auth.requests.https=true
となります。 - SSL本番環境において、SSL証明書が「Trusted Root」ではないとする「Certificate Error」が発生した場合、認証局プロバイダからデジタル署名を取得する必要があります。
- こちらもご参照ください。 How to Configure HTTPS in Tomcat for Liferay DXP 7.3