SSL または HTTPS 上で Confluence を実行する
アトラシアンの製品はSSLに対応しています。しかし、アトラシアンのサポートはその設定に対して支援は行いません。したがって、アトラシアンは、そのためのサポートの提供を保証できません 。
- SSL証明書の変更に際してサポートが必要であれば、証明書の提供元のベンダーに相談してください。
- 設定に関してサポートが必要であれば、Atlassian Answers に質問をあげてください。
このドキュメントでは、Confluence へ/からの転送中に、Confluence ログインおよびデータが暗号化されるように、Confluence を設定して HTTPS でのアクセスを有効する方法を示します。SSL 暗号化は、Confluence データやユーザーログインが、部外者から傍受されたり読まれたりするのを防ぐ優れた方法です。
ここでは以下のプラットフォームについて説明します。
- Confluence - Confluence に同梱されている Apache Tomcat がアプリケーション サーバーであり、唯一サポートされるアプリケーション サーバーです。異なるアプリケーション サーバーまたは Apache HTTP サーバー("httpd")を使用している場合、Apache web サーバーで SSL 接続を終了させる方法については、「mod_proxy と Apache」のページを参照してください。
- Java 8 - JDK 1.8 is the supported Java version for Confluence. Note that you need the JDK, since it includes the
keytool
utility used in the instructions below. The JRE is not enough.
Confluence に対するデフォルト コネクタ ポートは8090です。
On this page:
関連トピック
- Apache Tomcat 8.0 ドキュメントの SSL 設定のハウツー
- Java SE ドキュメントのキーツール - 鍵と証明書の管理ツール
- SSL 経由で LDAP、 JIRA アプリケーション、または他のサービスに接続する
ステップ 1.新しい SSL 証明書を作成または要求する
HTTPS を有効にする前に、有効な SSL 証明書が必要になります。既に証明書が準備できている場合は、以下のステップ2まで飛ばしてください。
自己署名証明書を作成するか、認証局(CA、証明機関とも呼ばれます)によって発行された証明証を使用するかを選択することができます。以下で2つのオプションを説明しています。
証明書オプション 1 – 自己署名証明書を作成する
暗号化が必要だが web サイトのリクエストの身元を確認する必要がない場合、自己署名証明書が役立ちます。一般的に、自己署名証明書はテスト環境や社内ネットワーク(イントラネット)で使用します。
証明書が認証局(CA)によって署名されていないため、ユーザーはサイトが信頼されていないというメッセージを受け取り、サイトにアクセスする前に、証明書を承認するいくつかのステップを実行する必要があります。これは通常、サイトに初めてアクセスする際に発生します。
Follow the steps below to generate a certificate using Java's keytool
utility. This tool is included in the JDK.
Use Java's
keytool
utility to generate the certificate:多くの SSL 発行機関(GoDaddy や RapidSSL を含みますが、これに限定されません)では、現在2048ビットのキー サイズが必要とされています。2048ビットの暗号鍵を生成するには、以下のクエリに '-keysize 2048' を追加します。Windows の場合、コマンド プロンプトで以下のコマンドを実行します。
"%JAVA_HOME%\bin\keytool" -genkeypair -keysize 2048 -alias tomcat -keyalg RSA -sigalg SHA256withRSA
OSX または UNIX ベースのシステムの場合、コマンド プロンプトで以下のコマンドを実行します。
$JAVA_HOME/bin/keytool -genkeypair -keysize 2048 -alias tomcat -keyalg RSA -sigalg SHA256withRSA
- パスワードが要求された場合
- 証明書に使用するパスワード(秘密鍵)を指定します。パスワード文字列は入力したとおりに表示されないことに注意してください。
- 設定ファイルを編集する場合、次のステップでこれが必要になるため、選択したパスワードをメモします。
既定のパスワードは "
changeit
" です。Tomcat には、特殊文字を含むパスワードに関する既知の問題があります。英数字のみを含むパスワードを使用する必要があります。
- Follow the prompts to specify your name, organisation and location. This information is used to construct the X.500 Distinguished Name (DN) of the entity. The CN ("What is your first and last name?") must match the fully-qualified hostname of the server running Confluence, otherwise Tomcat will not be able to use the certificate for SSL. For example for a Confluence running on a server named "confluence.example.com":
CN=confluence.example.com, OU=Java Software Division, O=Sun Microsystems Inc, C=US
- Enter '
y
' to confirm the details. - When asked for the password for '
tomcat
' (the alias you entered in the keytool command above), press the 'Enter' key. This specifies that your keystore entry will have the same password as your private key. You MUST use the same password here as was used for the keystore password itself. This is a restriction of the Tomcat implementation. - 証明書の準備ができました。以下のステップ2に移動します。
証明書オプション 2 – 認証局が発行した証明書を使用する
本番環境で Confluence を実行している場合、VeriSign、Thawte、または TrustCenter などの認証局(CA、認証局とも呼ばれる)によって発行された証明書が必要になります。以下の手順は Tomcat のドキュメントのものです。
まず、ローカル証明書を作成し、その証明書に基づいて「証明書署名要求」(CSR)を作成します。CSR を選択した認証局に提出します。CA は証明書を生成するために、その CSR を使用します。
- Use Java's
keytool
utility to generate a local certificate, as described in the previous section. Use the
keytool
utility to generate a CSR, replacing the text<MY_KEYSTORE_FILENAME>
with the path to and file name of the.keystore
file generated for your local certificate:keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr -keystore <MY_KEYSTORE_FILENAME>
- Submit the generated file called
certreq.csr
to your chosen certificate authority. Refer to the documentation on the CA's website to find out how to do this. - CA が証明書を送信します。
新しい証明書をローカルのキーストアにインポートします。
keytool -importcert -alias tomcat -keystore <MY_KEYSTORE_FILENAME> -file <MY_CERTIFICATE_FILENAME>
一部の CA では、証明書をインポートする前に、中間証明書をインストールする必要があることに注意してください。CA のドキュメントを参照し、証明書を正しくインストールします。
Verisign または GoDaddy を使用してエラーが発生した場合、秘密鍵とともに証明書を PKCS12 フォーマットへエクスポートする必要があります。
まず、上の手順で追加した証明書をキーストアから削除します。
keytool -delete -alias tomcat -keystore <MY_KEYSTORE_FILENAME>
PKCS12 フォーマットへエクスポートします。
openssl pkcs12 -export -in <MY_CERTIFICATE_NAME> -inkey <MY_PRIVATEKEY_NAME> -out <MY_PKC12_KEYSTORE_NAME> -name tomcat -CAfile <MY_ROOTCERTIFICATE_NAME-alsoCalledBundleCertificateInGoDaddy> -caname root
PKCS12 から jks へインポートします。
keytool -importkeystore -deststorepass <MY_DESTINATIONSTORE_PASSWORD> -destkeypass <MY_DESTINATIONKEY_PASSWORD> -destkeystore <MY_KEYSTORE_FILENAME> -srckeystore <MY_PKC12_KEYSTORE_NAME> -srcstoretype PKCS12 -srcstorepass <MY_PKC12_KEYSTORE_PASSWORD> -alias tomcat
ステップ 2.Confluence インストールのサーバー設定ファイルを編集する
- Edit the server configuration file at this location: {
CONFLUENCE-INSTALLATION}>/conf/server.xml
. 以下の行をコメント アウトします。
<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" protocol="org.apache.coyote.http11.Http11NioProtocol" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocols="TLSv1,TLSv1.1,TLSv1.2" sslEnabledProtocols="TLSv1,TLSv1.1,TLSv1.2" SSLEnabled="true" URIEncoding="UTF-8" keystorePass="<MY_CERTIFICATE_PASSWORD>"/>
- Replace the text <
MY_CERTIFICATE_PASSWORD>
with the password you specified for your certificate. - 上記のように、属性 - 値ペア
SSLEnabled="true"
がConnector
要素の一部であることを確認します。この属性が存在しない場合、Confluence へのアクセス試行がタイム アウトします。 - サーバー設定ファイルを保存します。
ステップ 3.証明書の場所を指定する
Tomcat はデフォルトで、キーストア ファイルの名前が .keystore
であることと、およびそのファイルが Tomcat を実行されているユーザーのホーム ディレクトリ (自身のホーム ディレクトリとは異なる可能性があります) にあることを想定しています。つまり、Tomcat はデフォルトでは以下の場所で SSL 証明書を探します。
- Windows:
C:\Documents and Settings\\#CURRENT_USER#\.keystore
- OS X および UNIX ベースのシステムの場合:
~/.keystore
証明書をユーザー定義の場所に移動することができます。以下で説明するように、証明書をデフォルトの場所から移動させる場合、Tomcat が証明書を見つけることができるように、サーバー設定ファイルを更新する必要があります。
- Edit the server configuration file at this location: {
CONFLUENCE-INSTALLATION}>/conf/server.xml
keystoreFile="<MY_CERTIFICATE_LOCATION>"
属性をConnector
要素に追加し、要素が次のようになるようにします。<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" SSLEnabled="true" URIEncoding="UTF-8" keystorePass="<MY_CERTIFICATE_PASSWORD>" keystoreFile="<MY_CERTIFICATE_LOCATION>"/>
- テキスト
<MY_CERTIFICATE_LOCATION>
を、.keystore
ファイルの名前とパスを含む、証明書へのパスで置き換えます。 - サーバー設定ファイルを保存します。
ステップ 4.Confluence のベース URL を HTTPS に変更する
- ブラウザで、Confluence 管理コンソールに移動します。
- サーバーのベース URL を HTTPS に変更します。「サーバーのベース URL の設定」のドキュメントを参照します。
- Restart Tomcat and access Confluence on
https://<MY_BASE_URL>:8443/
.
ステップ 5.すべての URL を HTTPS にリダイレクトするため、セキュリティ制約を追加します。
Although HTTPS is now activated and available, the old HTTP URLs (http://localhost:8090) are still available. Now you need to redirect the URLs to their HTTPS equivalent. You will do this by adding a security constraint in web.xml
. This will cause Tomcat to redirect requests that come in on a non-SSL port.
- Confluence サイトが RSS マクロを使用しているかどうかを確認します。サイトで RSS マクロが有効化されている場合、
web.xml
ファイルを編集するのではなく、ファイアウォール ルールで URL リダイレクトを設定する必要がある場合があります。以下のステップはスキップし、「RSS フィード マクロ」ページの手順に従ってください。 - または、
<CONFLUENCE_INSTALLATION>/confluence/WEB-INF/web.xml
でファイルを編集します。 以下の宣言を、ファイルの末尾の
</web-app>
タグの前に追加します。<security-constraint> <web-resource-collection> <web-resource-name>Restricted URLs</web-resource-name> <url-pattern>/</url-pattern> </web-resource-collection> <user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> </security-constraint>
- Confluence を再起動し、http://localhost:8090 にアクセスします。https://localhost:8443/login.action にリダイレクトされるはずです。
Confluence には 2 つの web.xml ファイルがあります。もう片方は <CONFLUENCE_INSTALLATION>/conf/web.xml
にあります。上述のように、セキュリティ成約は <CONFLUENCE_INSTALLATION>/confluence/WEB-INF/web.xml
にのみ追加してください。
注意
- 証明書の生成の背景情報: "
keytool -genkeypair
" コマンドは、公開鍵と関連付けられた秘密鍵のキー ペアを生成し、それらをキーストアに保存します。コマンドは公開鍵を X.509 v3 自己署名証明書にパッケージ化し、単一要素の証明書チェインとして保存します。この証明書チェーンと秘密鍵は新しいキーストア エントリに保存され、コマンドで指定したalias
で識別されます。Java SE のドキュメントに、このユーティリティの概要が記載されています。
- カスタム SSL ポート: SSL コネクタが実行されているポートを既定値の 8443 から変更した場合、新しい SSL ポートを反映するには、標準 HTTP コネクタの
redirectPort
属性を更新する必要があります。Tomcat は、受信リクエストの安全性を確保する必要がある場合のリダイレクト先のポートを確認するために、この情報を必要とします。 Multiple instances on the same host: When running more than one instance on the same host, it is important to specify the address attribute in the
<CONFLUENCE_INSTALLATION>/conf/server.xml
file because by default the connector will listen on all available network interfaces, so specifying the address will prevent conflicts with connectors running on the same default port. See the Tomcat Connector documentation for more about setting the address attribute: https://tomcat.apache.org/tomcat-8.0-doc/config/http.html<Connector port="8443" address="your.confluence.url.com" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" SSLEnabled="true" URIEncoding="UTF-8" keystorePass="<MY_CERTIFICATE_PASSWORD>" keystoreFile="<MY_CERTIFICATE_LOCATION>"/>
- Protection for logins only or for individual spaces: As of Confluence 3.0, Atlassian does not support HTTPS for logins only or for specific pages. We support only site-wide HTTPS. To see the reasoning behind this decision, please see CONF-18120 and CONF-4116.
トラブルシューティング
- 「SSL のトラブルシューティング」の Confluence ナレッジベース記事を確認してください。
Internet Explorer で添付ファイルをダウンロードできない問題: サイト全体に SSL を適用すると、IE で添付ファイルを適切にダウンロードできなくなる可能性があります。この問題を修正するには、
<CONFLUENCE_INSTALLATION>/conf/server.xml
を編集し、<Context ... />
要素に次の内容を追加します。<Valve className="org.apache.catalina.authenticator.NonLoginAuthenticator" disableProxyCaching="true" securePagesWithPragma="false" />