SSL または HTTPS 上での Jira アプリケーションの実行
You can use SSL with Atlassian applications; however, SSL configuration is outside the scope of Atlassian Support.
- 証明書の変換に際してサポートが必要であれば、証明書の提供元のベンダーに相談してください。
- If you need help with configuring SSL, create a question on the Atlassian Community.
このページでは、Apache Tomcat で HTTPS 設定を行い、Jira アプリケーションを SSL または HTTPS 上で実行する手順を説明します。この手順は Jira が通常の方法でインストールされている場合を前提としています。HTTPS 設定の完全な手順や包括的な手順の説明ではありません。また、記述内容はすべての環境に適用されるものではありません。
Why should you run Jira over SSL or HTTPS? When people access web applications, there is always a possibility that their usernames and passwords can be intercepted by intermediaries between your computer and the ISP/company. It's a good idea to enable access via HTTPS (HTTP over SSL) and make this a requirement for pages where passwords are sent. Note, however, that using HTTPS may result in slower performance.
HTTPS を使用せずに Jira を実行すると、インスタンスが中間者攻撃やDNS リバインディング攻撃などに晒される可能性があります。インスタンスでは HTTPS を有効化することをお勧めします。
はじめる前に
作業を始める前に、以下の点を確認してください :
- サポート
アトラシアン サポートでは、SSL のサポートは証明書を発行する認証局 (CA) に依頼します。このページにおける SSL 関連の説明は参考情報としてのみ提供されます。 - Windows インストーラー
"Windows インストーラー" は、Tomcat を実行するために独自の Java Runtime Environment (JRE) Java プラットフォームをインストールします。SSL 証明書をアップデートする場合は、JRE のインストレール中に行う必要があります。 関連バグ
Jira 7.3 以降は、server.xml
ファイルのプロトコルを誤って設定する 2 つのバグの影響の影響を受けます。プロトコルを手動で設定することでこの課題を回避できます。- Jira がリバース プロキシの背後にある場合
Jira が Apache などのリバース プロキシの背後にホストされている場合は、「SSL を利用して Jira と Apache を連携する」をご覧ください。 - 新しい接続の追加
新しい接続 (SSL など) を追加する際は、Jira 接続ツールは接続の詳細を含むエントリを server.xml ファイルに保存します。このエントリには特殊文字を処理するプロパティを含まないので、手動で追加する必要があります。このプロパティがなければ Jira は適切に機能しないため、これは必須の操作です。以降で必要な手順を説明しますが、詳細についてはこちらを参照してください。 Insecure BKS-V1 keystore format
Due to a security vulnerability of the BKS-V1 keystore format (provided by the BouncyCastle library), we recommend that you don't use it in your Jira instance. Learn more
Java キーストアの生成
このセクションでは、お客様の SSL 証明書を保存する Java キーストア (JKS) を作成します。SSL 証明書は、Jira において SSL 通信を行うためには必須のものです。SSL 証明書は一般的に 2 つの種類に区分されます :
証明書 | 説明 | 使用環境 | 手順 |
---|---|---|---|
自己署名証明書 | ウェブサーバー証明書の正当性を確認する方法のひとつである CA によるデジタル署名がない証明書です。自分自身が自己名で署名します。 | テスト用、開発用、その他内部向けサーバーのみです。 | 1 - 13 |
CA 署名証明書 | 認証局 (CA) のデジタル署名によって正当性が確認された証明書です。これにより、ブラウザやクライアントは証明書に信用を置くことが可能になります。 | 本番環境用サーバー | 1 - 19 |
信用のおけるサードパーティー認証局 (CA) が発行したデジタル証明書により、お客様のウェブサイトがお客様の会社を正当に代表するものであることが証明され、お客様の会社の実在が認証されます。多くの CA では単にドメイン名のみを認証する証明書を発行しますが、VeriSign などでは、お客様の事業活動の存在、ドメイン名の所有権の存在、証明書使用に関するお客様の権限などを証明する高度の認証を提供しています。
CA の一覧は、ここ をご覧ください。よく知られた認証局の例を次に示します:
当社としては、CA で署名された証明書の利用を推奨いたします。
お客様のサーバーに Portecle をインストールすることができない場合や、コマンドラインの利用をご希望の場合は、このページ下部にある コマンドラインを使用したインストール セクションをご覧ください。
- Download and install the Portecle app onto the server that runs Jira.
This is a third-party application and is not supported by Atlassian.
Run the App as an Administrator, so it will have the appropriate permissions. Also, ensure the
<JAVA_HOME>
variable is pointing to the same version of Java that Jira uses. See Setting JAVA_HOME for further information on this.If running on a Linux/UNIX server, X11 will need to be forwarded when connecting to the server (so you can use the GUI), as below:
ssh -X user@server
- Create a new Keystore オプションを選択します。
- JKS形式を選択して OK をクリックします。
- キーペアの生成ボタンを選択します。
- Key Algorithm では RSA を、Key Size では 2048 を選択します :
- [Signature Algorithm] が「SHA256withRSA」となっていることを確認します。「既定の SSL 暗号化が弱すぎることについてのセキュリティ ツールからの報告」をご参照ください。
- Edit the certificate details, as per the below example and select OK:
The Common Name MUST match the server's URL, otherwise errors will be displayed in the browser.
- 証明書のエイリアス名を指定します。ここでは、jira を使用しています。
- キーストアのパスワードを入力します (既定のパスワードは通常
changeit
です)。 - 下の例のように、キーペアの生成が成功した旨のメッセージが表示されます :
パスワードがステップ 11 と同一であることを確認し、キーストアを
<Jira_HOME>/jira.jks
に保存します。[ファイル] > [キーストアの保存] を選択して保存できます。自己署名証明書を使用する場合は、 Jira 設定ツールを利用した web サーバーの設定 に進んでください。それ以外の場合は次の手順に進みます。
- 証明書の正当性を確認するために CA に対して署名を依頼する証明書署名要求 (CSR) を生成する必要があります。これを行うためには、証明書上で右クリックし、CSR の生成 を選択します。CSR ファイルを、<JIRA_HOME>/jira.csr.として保存します。
- CSR を認証局に送信して署名を求めます。認証局からは、署名済み証明書 (CA 応答) および CA のルート証明書/中間証明書のセットが返送されます。
- Import Trusted Certificate ボタンを使用して、ルート証明書と中間証明書の両方(もしくは一方)をインポートし、証明書ごとにこの手順を繰り返します。
jira
証明書で右クリックして [Import CA Reply (CA 応答をインポート)] を選択し、署名付き証明書のインポートを開始します。- CA から提供された証明書 (
jira.crt
) を選択します。これで、CA 応答のインポートが完了しました。 - 結果を、Tools > Keystore Report で確認します。証明書はルート証明書の子ノードに表示されます。
- キーストアを保存し、次のセクションに進みます :
Jira 設定ツールを利用した web サーバーの設定
このセクションでは、JIRA での SSL 暗号化設定の最後の手順として、Jira 設定ツールを利用した web サーバーの設定を行います。Jira 設定ツールの詳細は、Jira 構成ツールの利用 をご覧ください。
- 次のように Jira 設定ツールを起動します :
- Windows: コマンド プロンプトを開いて、Jira インストール ディレクトリの
bin
サブディレクトリにあるconfig.bat
を実行します。 - Linux/Unix: Open a console and execute
config.sh
in thebin
sub-directory of the Jira installation directory.This may fail with the error as described in our Unable to Start Jira applications Config Tool due to No X11 DISPLAY variable was set error KB article. Please refer to it for the workaround.
- Windows: コマンド プロンプトを開いて、Jira インストール ディレクトリの
- [Web サーバー] タブをクリックします。
スクリーンショット: Jira 設定ツール — [Web サーバー] タブ
各フィールドに次のように入力します :
フィールド 値 ポートの制御 通常はデフォルトのままとしますが、必要に応じてポート番号を変更することもできます。「Jira の TCP ポートの変更」をご覧ください。 プロフィール Profile とはプリセットされたウェブサーバー動作設定です。次の 4 つの値から選択します : - 無効
- HTTP のみ
- HTTP および HTTPS (HTTP を HTTPS へリダイレクト)
- HTTPS のみ
Jira を HTTPS 上で実行する場合は、'HTTP & HTTPS' または 'HTTPS' を選択する必要があります。
Jira を HTTPS 上で実行するが、ユーザーに HTTP 経由でも Jira にアクセスさせる場合は、'HTTP & HTTPS' を選択する必要があります。'HTTP & HTTPS' を選択すると、HTTP 経由で Jira にアクセスするユーザーは HTTPS のアドレスにリダイレクトされます。HTTP ポート 通常はデフォルトのままとします(8080)。必要に応じてポート番号を変更することもできます。「Jira の TCP ポートの変更」をご覧ください。
プロファイルとして "HTTPS のみ" を選択した場合、このフィールドは無効となります。HTTPS ポート 通常はデフォルトのままとします(8443)。必要に応じてポート番号を変更することもできます。「Jira の TCP ポートの変更」をご覧ください。 Keystore パス 証明書のキーストアの場所を指定します。これは手順 13 でキーストアを保存した際に選択され、 <Jira_HOME>/jira.jks
となります。Keystore パスワード キーストアのパスワードを指定します。自己署名証明書を生成した場合は、このパスワードは手順 13 で証明書を生成したときにキーおよびキーストアに設定したパスワードです。 Keystore エイリアス キーストア内のそれぞれの項目はエイリアスで区別されます。手順 10 で説明したように、証明書について jira
を使用することを推奨します。- 無効
- Check Certificate in Key Store ボタンをクリックして、以下の項目を確認します :
- キーストア内に証明書が存在すること。
- キーストアのパスワードが有効であること。
- キーエイリアスを使用してキーを見つけられること。
- Save ボタンをクリックして設定を保存します。
- 重要: 新しい接続を追加する際、設定ツールには特殊文字を許可するプロパティが含まれません。そのため、それらを
server.xml
ファイルに手動で追加する必要があります。方法については、このナレッジベース記事を参照してください。
高度な設定
同一ホストにおける複数のインスタンスの実行
同一ホストで複数のインスタンスを実行する場合は、address 属性を <Jira_INSTALLATION>/conf/server.xml
ファイルで指定することが重要です。これは、コネクタは既定では利用可能なすべてのネットワーク インターフェイス上でリッスンしているので、アドレスを指定することで、同一の既定ポート上で実行されるコネクタ間の衝突を防止するためです。アドレス属性の設定の詳細については、Apache Tomcat ドキュメントの「HTTP Connector」をご確認ください。
コマンド ラインを使用したインストール
ステップ 1.キーストアを作成します
Java キーストアの生成:
<JAVA_HOME>/keytool -genkey -alias jira -keyalg RSA -keystore <Jira_HOME>/jira.jks
Instead of first and last name, enter the server URL, excluding "https://" (e.g.: jira.atlassian.com).
- パスワードを入力します。
手順 2 のパスワードを使用して、署名のための CSR を生成します :
<JAVA_HOME>/keytool -certreq -alias jira -file /output/directory/csr.txt -keystore <Jira_HOME>/jira.jks
- Submit the CSR to the CA for signing. They will provide a signed certificate and a root and/or intermediate CA.
If the certificate will not be signed, skip to step 7.
ルート証明書、または中間証明書をインポートします :
<JAVA_HOME>/keytool -import -alias rootCA -keystore <Jira_HOME>/jira.jks -trustcacerts -file root.crt
(CA から提供された) 署名済み証明書をインポートします :
<JAVA_HOME>/keytool -import -alias jira -keystore <Jira_HOME>/jira.jks -file jira.crt
Keystore 内に証明書が存在することを検証します。
<JAVA_HOME>/keytool -list -alias jira -keystore <Jira_HOME>/jira.jks
これは
PrivateKeyEntry
である必要があります。異なる場合、証明書のセットアップは正常に完了しません。例:jira, Jan 1, 1970, PrivateKeyEntry, Certificate fingerprint (MD5): 73:68:CF:90:A8:1D:90:5B:CE:2A:2F:29:21:C6:B8:25
ステップ 2.Keystore で Tomcat を更新する
- 編集する前に、
<Jira_INSTALL>/conf/server.xml
のバックアップを作成します。 HTTPS コネクタを編集し、キーストアを示すパラメーターを含めます。
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" SSLEnabled="true" maxThreads="150" minSpareThreads="25" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" sslEnabledProtocols="TLSv1.2,TLSv1.3" clientAuth="false" useBodyEncodingForURI="true" keyAlias="jira" keystoreFile="<Jira_HOME>/jira.jks" keystorePass="changeit" keystoreType="JKS"/>
Ensure to put the appropriate path in place of
<Jira_HOME>
and change the port as needed.組織が最新の TLS バージョンをサポートしていない場合は、以前のバージョンへフォールバックできます。次を変更します:
sslEnabledProtocols="TLSv1.2,TLSv1.3"
変更後:
sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2,TLSv1.3"
HTTP コネクタを編集し、HTTPS コネクタへリダイレクトするようにします。
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" port="8080" protocol="HTTP/1.1" redirectPort="<PORT_FROM_STEP_1>" useBodyEncodingForURI="true"/>
Ensure the
<PORT_FROM_STEP_1>
is change to the appropriate value. In this example it would be 8443.- 変更を
server.xml
に保存します。 HTTPS へのリダイレクトを使用する場合 (推奨)、
Jira_INSTALL>/WEB-INF/web.xml
ファイルを編集し、ファイルの末尾に次のセクションを追加してから、</web-app>
を閉じます。この例では、添付ファイルを除くすべての URL が HTTP から HTTPS にリダイレクトされます。<security-constraint> <web-resource-collection> <web-resource-name>all-except-attachments</web-resource-name> <url-pattern>*.jsp</url-pattern> <url-pattern>*.jspa</url-pattern> <url-pattern>/browse/*</url-pattern> <url-pattern>/issues/*</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
- 変更を保存したら JIRA を再起動します。
また、Jira 構成ツールで「HTTP と HTTPS」プロファイルを選択し、HTTP URL から HTTPS URL へユーザーをリダイレクトすることもできます。この設定は、すべての HTTP URL を HTTPS URL へリダイレクトします。
特定のページのみを HTTPS へリダイレクトしたい場合、手動で行う必要があります。これを行うには、Jira 設定ツールで「HTTPS のみ」プロファイルを選択して設定を保存した後、HTTP URL を対応する HTTPS URL に手動でリダイレクトする、htaccess ファイルを Web サーバー上に作成します。
トラブルシューティング
上記にある通り Portecle を用いて生成した自己署名キーを使用する場合の、トラブルシューティングの TIPS をいくつか紹介します。
ブラウザに「https://localhost:<port number>」と入力したときに "Cannot establish a connection to the server at localhost:8443" のようなメッセージが表示される場合は、ログ ファイル logs/catalina.out
でエラー メッセージを探します。ここには発生する可能性があるいくつかのエラーとそれぞれの説明を紹介します。