こちらではTomcatを利用してHTTPS経由でYellowfinにアクセスする方法を紹介致します。
YellowfinはSSL / TLSを使用して、接続を暗号化することができます。さらに、強制的にYellowfinがHTTPSを使用させることによって、暗号化されていないセッションをアプリケーションサーバーに許可しないようにすることもできます。
注意:これはYellowfinとデータソース間のトラフィックを暗号化することではありません。
TomcatのSSL / TLS設定に関する詳細な情報は、こちらのサイトをご参照ください。 Tomcatの各バージョンには少し違うところがありますので、TomcatのSSL / TLSの設定を調べる時に、自身のアプリケーションのバージョンを確認してください。
確認方法としては、ログインURLの最後に/info.jspを追加し、Yellowfin Serverのinfo.jspページにアクセスしてください。こちらでは、画像の「Application Server」の値になります。
各バージョンの設定の手順は大きく変わりませんので、例として、この記事ではTomcat 8.5を使用しています。このバージョンのSSL / TLS設定に関する詳細につきましては、 こちらをご参照ください。
ここからは、自己署名証明書を使用して、Yellowfinを強制的にHTTPS経由でアクセスする方法を説明します。各自の環境で署名付き証明書を使用すると、ブラウザ内のエラーメッセージを防ぐことができます。
1、Keystore と Certificate
Java Keystoreを生成し、ユーザーセッションの暗号化に使用する証明書として保存します。以下のコマンドを実行してください。
注意:YelllwofinInstallはYellowfinインストールフォルダーを示しています。
keytool -genkey -alias tomcat -keyalg RSA -keystore /YellowfinInstall/appserver/conf/keystore
keytoolコマンドが見つからない場合、$ JAVA_HOME/bin/にあります。
コマンドを実行すると、パスワードを指定することが求められます。
ここでは、パスワードに「changeit」を使用していますが、各自の環境ではもっと厳密なパスワードを指定してください。
コマンドは、<Yellowfinインストール>appserver/conf/フォルダにRSAアルゴリズムを使用してKeystoreを生成しています。
注意:Keystoreを生成しているユーザーがパスへの書き込みアクセス権を持っている限り、他のファイルパスを選択することができます。YellowfinユーザーにKeystoreへの読み取りアクセス権を持っていることも必要です。
以上の例では、<Yellowfinインストールフォルダー>に移動しから、以下のコマンドを実行しています。
keytool -genkey -alias tomcat -keyalg RSA -keystore appserver/conf/keystore
パスワードを入力してから、追加の質問の記入を省略することができます。情報の確認が求められたら、「yes」と入力してください。ここでは、Keystoreの場合と同じように、自己署名証明書(tomcat)に同じパスワードを使用しました。こちらのパスワードについて、状況によって変更してください。
ここまで、Keystoreが生成されました。自己署名証明書はKeystoreにあります。
署名付き証明書を使用したい場合、証明書署名を作成し、証明書をインポートすることができます。より詳細な情報はこちらをご参照ください。
2、コネクター
まず、SSL/TLSコネクターを有効にします。
HTTPSにアクセスするポートが別ポートに発生しますので、利用したいポートをYellowfinの設定のコネクターとして有効にする必要があります。テキストエディターで<Yellowfinインストール>appserver/conf/servere.xmlを編集します。
利用したいポートを指定してください。Tomcat8.5の場合、標準コネクターのパラメーターは69行にあります。
注意:1024以下のポートを設定したい場合、管理者としてアプリケーションを実行する必要があります。デフォルトポートは8443。
こちらでは、Yellowfinの標準接続をポート7350にしています。そして、redirectPort = "xxxx"を確認してください。"xxxx"は暗号化された後のアクセスポートになります。こちらでは、デフォルトの8443を使用しています。
次に、暗号化されたポートにConnectorの設定を追加します。
<Yellowfinインストール>appserver/conf/servere.xmlの第89行目からコメントアウトされたConnectorブロックを次のように置き換えてください。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true"
scheme="https" secure="true"
keystoreFile="conf/keystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>
置き換えたら、コメントアウトを外してください。これにより、Tomcatがポート8443を見に行くように設定されます。そして、ポート8443も先ほど作成されたKeystoreで暗号化されます。
この時点で、自動リダイレクションが必要ではない場合の設定が完了しました。Yellowfinを起動してから、https://:8443にアクセスすることができます。
3、自動リダイレクション
自動リダイレクトの設定では、<Yellowfinインストール>/appserver/webapps/ROOT/WEB-INF/web.xmlファイルに新しいセキュリティ制約セクションを追加する必要があります。
。web.xmlをテキストエディターで開き、次のブロッグコマンドをタグの中に追加してください。
<security-constraint>
<web-resource-collection>
<web-resource-name>Automatic SSL Forwarding</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>
CONFIDENTIAL
</transport-guarantee>
</user-data-constraint>
</security-constraint>
ここまで、全部の設定が完了しました。
Yellowfinを起動(再起動)してください。
いつも使用しているURLでYellowfinにアクセスすると、自動的に暗号化されたポート8443にリダイレクションされます。
以上の手順に沿って作業しても設定できない場合、<Yellowfinインストール>appserver/logsファイルの「catalina.out」ログを確認してください。「SEVERE」というタグの構文がエラーになっている場合、エラーが発生している場所のファイル名と行番号が表示されます。
画像のログでは、397行目の「web.xml」ファイルに構文エラーがあることを提示しています。
ご不明の点がございましたら、サポートサイトからお問い合わせください。