SSL およびアプリケーション リンクのトラブルシューティング ガイド

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このページではまず、アプリケーション リンクで自動的に診断できる特定の SSL エラーと、それらを修正するために行える操作について説明します。

後半では、アプリケーション リンクと HTTPS を使用したときに発生する可能性があるエラーの特定および修正に役立つ、一般的なトラブルシューティング ガイドを提供しています。

このページの内容


リモート証明書が信頼できない

アプリケーションが HTTPS 経由でリモート アプリケーションに接続しようとしましたが、リモート SSL 証明書を信頼できません。

リモート アプリケーションで、自己署名の SSL 証明書や、ローカル アプリケーションで未知の認証局によって発行された証明書を使用している可能性があります。

アトラシアン アプリケーションのログに次のようなエラー メッセージが表示される場合があります。

javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
考えられる要因
実行可能な対応策

リモート SSL 証明書の失効

リモート証明書が信頼済みの認証局から発行されていない (自己署名証明書である可能性がある)

  • 証明書が信頼済みの認証局から発行されている場合、1 つ以上の中間証明書をインストールする必要がある場合があります。
  • 証明書が自己署名されたものだった場合、ローカル アプリケーションが使用している JVM について、証明書を Java トラスト ストアにインポートできます。以降の「SSL 証明書の場所の確認」をご参照ください。
リモート証明書がファイル システムの別の場所に保管されている

トップに戻る


 


リモート証明書がリモート ホスト名と一致しない

アプリケーションが HTTPS 経由でリモート アプリケーションに接続しようとしましたが、リモート SSL 証明書を信頼できません。

証明書のコモン ネームがリモート アプリケーションの URL に一致せず、証明書の詳細が検証できないため、リモート SSL 証明書を信頼できません。証明書の URL は、アプリケーション リンクの構成に使用された URL にも一致している必要があります。

アトラシアン アプリケーションのログに次のようなエラー メッセージが表示される場合があります。

javax.net.ssl.SSLException: hostname in certificate didn't match
javax.net.ssl.SSLException: <message>
考えられる要因
実行可能な対応策

リモート証明書のコモン ネームがホスト アドレスの URL に一致しない

  • 証明書のコモン ネーム (CN) がホスト URL に一致することを確認します (例: https://www.digicert.com/help/ を使用)。一致しない場合、証明書を置き換える必要があります。

トップに戻る


ログのエラー メッセージ

アプリケーション ログに次のエラー メッセージが表示される場合があります。

  • javax.net.ssl.SSLException: hostname in certificate didn't match
  • javax.net.ssl.SSLHandshakeException
  • sun.security.validator.ValidatorException: PKIX path building failed
  • sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

詳細な情報については上述のリンクをご利用ください。

アプリケーション ログの場所

クリックしてエラー ログの場所を確認...

ロギング構成アプリケーション ログTomcat Web サーバーログ
Bamboo <Bamboo installation directory> /logs  
Bitbucket Server / Stash

<Bitbucket home directory>/log

<Stash home directory>/log

<Bitbucket Server installation directory>/logs

<Stash installation directory>/logs

Confluence <Confluence home directory>/logs <Confluence installation directory >/logs
Crowd <Crowd home directory>/logs <Crowd installation directory>/apache-tomcat/logs
Crucible <Crucible installation  directory>/var/log/  
Fisheye <FishEye installation  directory>/var/log/  
Jira アプリケーション <JIRA application home directory>/log <JIRA application installation directory>/logs

より詳細なログを取得するには、アプリケーションで DEBUG レベルのロギングを有効にすることをご検討ください。DEBUG はすべてのスタック トレースを追加し、HTTP 応答のメッセージを含みます。

このセクションでは、HTTPS (HTTPS over SSL) をアプリケーション リンクと使用した場合に発生する一般的なエラーの特定および修正に役立つ、トラブルシューティング ガイドを提供します。 

直近のアップグレードの確認

最近のアップグレード後にアプリケーション リンクが動作しなくなった場合、アプリケーションの server.xml ファイルへのカスタマイズが上書きされた可能性があります。カスタム変更にはリバース プロキシ構成や HTTPS 構成が含まれる場合があります。アップグレード後の server.xml ファイルがアップグレード前の server.xml に一致するかどうかを確認します。
クリックして server.xml ファイルの場所を確認...

server.xml ファイルの場所は、ご利用のアプリケーション、オペレーティング システム、およびインストール先に応じて異なります。 

アトラシアン アプリケーションで共通の既定のインストール先は、次のとおりです。

  • Linux: /opt/atlassian/<application-name>
  • Windows: C:\Program Files\Atlassian\<application-name>
  • Windows: C:\Atlassian\<application-name>

アトラシアン アプリケーションのフォルダ構造内の場所:

アプリケーションserver.xml の場所
Bamboo<install-path>/conf/
Confluence<install-path>/conf/
Crowd<install-path>/apache-tomcat/conf/
CrucibleFisheye と同様
FisheyeFisheye の設定ファイルは config.xml です。「Fisheye の web サーバーを設定する」および「Fisheye / Crucible で追加ポートでの web リクエストのリッスンを有効化する方法」をご参照ください。
Jira アプリケーション<install-path>/conf/
Bitbucket Server 5.0

なし。<Bitbucket home directory>/shared/bitbucket.properties に置き換えられています。

server.xml のカスタマイズを bitbucket.properties に移行する方法」をご参照ください。

Bitbucket Server 4.0 〜 4.14<Bitbucket home directory> /shared/server.xml
Stash 3.8 〜 3.11

<Stash home directory>/shared/

このリリースを利用しているが、上述のディレクトリに server.xml が存在しない場合、<install-path>/conf/server.xml から実行しています。

インスタンスのアップグレード時の考慮事項をへらすため、<install-path>/conf/server.xml<Stash home directory>/shared/ にコピーすることをおすすめします。


Stash 3.7 以前<install-path>/conf/

<install-path> は、システムでのアプリケーションのインストール先です。

 

ネットワーク トポロジーの確認

アプリケーション間のセキュアな接続を構成するには、2 つの一般的な方法があります。これらのアプローチは、SSL 証明書の保存先と、アプリケーション リンクのセットアップ時に使用されるアプリケーション URL を決定します。

SSL をリバース プロキシで終了する

クライアントは SSL 経由でリバース プロキシに接続します。リバース プロキシは非セキュアな接続を経由してアプリケーション サーバーと通信します。

SSL をアプリケーション サーバーで終了する

リバース プロキシを使用しないインストールの場合、Tomcat を構成して SSL 接続を許可するようにできます。アプリケーション サーバーでの SSL の終了をリバース プロキシと組み合わせて使用し、リバース プロキシとアプリケーション サーバー間の通信をセキュアに保つこともできます。

HTTPS を使用するようにアトラシアン アプリケーションを構成する

適切なベース URL を使用しているかどうかの確認

アプリケーションに適切なベース URL が定義されていること (http or  https プロトコルを含む) と、アプリケーション リンクで同じ URL を使用していることを確認します。

SSL 証明書の構成の確認

SSL 証明書は、次の最小要件を満たす必要があります。

  • 証明書のコモン ネーム (CN) は、アプリケーションのホスト名 (URL アドレス) と一致している必要があります。
  • 証明書のタイムスタンプは引き続き有効である必要があります。
  • 証明書が適切な Java トラスト ストアにインストールされている必要があります (アトラシアンのサーバー製品は Tomcat アプリケーション サーバーをバンドルする Java アプリケーションです)。
  • ローカルのトラスト ストアに、接続先のリモート アプリケーションの証明書が保存されている必要があります。
  • トラスト ストアに中間証明書が存在する必要があります。
  • ローカルおよびリモート証明書は、適切な形式 (JKS) で既定のトラスト ストア タイプにインポートされている必要があります。

証明書の詳細を確認するには、ブラウザでアプリケーションにアクセスし、ブラウザのアドレスバーにある南京錠のアイコンをクリックします。また、SSL 証明書の詳細をオンラインで確認することもできます (例: https://www.digicert.com/help/ を使用)。

Java トラスト ストアに証明書が存在するかどうかを確認するには、以降の「SSL 証明書の場所の確認」をご参照ください。

SSL 証明書の場所の確認

アトラシアンのサーバー製品などの Java アプリケーションは、ファイルシステムの特定の場所で SSL 証明書を見つけることを期待します。

既定では、Java アプリケーションは次の場所にある JRE cacerts トラスト ストアを使用します。

JAVA_HOME/jre/lib/security/cacerts

ここで、JAVA_HOME は Java のインストール ディレクトリを指す環境変数です。特定のアトラシアン製品は JRE をバンドルします。この場合、JRE のトラスト ストアが使用されます。

アプリケーションの起動時に JVM 引数を指定することで別のストアを指定できます。詳細については Oracle のドキュメントをご参照ください。

一般に、リモート アプリケーションから証明書をエクスポートし、それをローカル アプリケーションにインポートする必要があります。これは、アプリケーションが別のマシンで実行されている場合や、バンドルされた JVM を使用している場合に一般的な方法です。

キーストアから証明書をエクスポートする

クリックして手順を確認...

.crt 証明書ファイルへのアクセス権を持っている場合、このステップはスキップしてかまいません。

Java keytool ユーティリティを使用して証明書をエクスポートします。

keytool -export -alias <existing_alias_in_keystore> -file <any_filename_here> -keystore <path/to/keystore>

トラスト ストアに証明書をインポートする

クリックして手順を確認...

Java keytool ユーティリティを使用して証明書をキーストアにインポートします。

keytool -import -alias <new_unique_alias> -file <any_filename_here_from_above> -keystore <path/to/truststore>

keytool ユーティリティが見つからない場合

keytool は Java Runtime Environment (JRE) とともに提供されます。バンドルされた JRE を持つ製品を使用している場合、keytool を <product-install-path>/jre/bin/keytool で見つけることができます。

最終更新日 2018 年 8 月 1 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.