自己署名証明書を使用する場合

Bitbucket Server で webhook を管理する

このページの内容

お困りですか?

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

コミュニティに質問

アトラシアンの製品はSSLに対応しています。しかし、アトラシアンのサポートはその設定に対して支援は行いません。したがって、アトラシアンは、そのためのサポートの提供を保証できません

  • SSL証明書の変更に際してサポートが必要であれば、証明書の提供元のベンダーに相談してください。
  • 設定に関してサポートが必要であれば、Atlassian Answers に質問をあげてください。

 

自己署名証明書を信頼するためには、Bitbucket が使用する Java キーストアに公開証明書をインポートする必要があります。この例では、これは *.atlassian.com になります。以下でインストール方法を説明します。

If you're unable to install Portecle on the server or prefer the command line please see our Command Line Installation section below.

エンドポイントの公開証明書の取得とインポート

  1. Download and install the Portecle app onto the server that runs Bitbucket.
    (warning) This is a third-party application and not supported by Atlassian.
  2. <JAVA_HOME> 変数が、Bitbucket が使用する Java と同じバージョンを示していることを確認します。
    (info) Linux / Unix サーバー上で実行している場合、サーバーへの接続中に、以下のように X11 を転送する必要があります (GUI を使用できます) 。

                  ssh -X user@server
  3. [Examine] メニューを選択し、[Examine SSL/TLS Connetcion] をクリックします。
  4. ターゲットとなるシステムの SSL ホスト、ポートを入力します。
  5. ローディングが実行されるまでしばらく待ちます。ローディング後に公開証明書を選択し、PEM をクリックします。
  6. 証明書をエクスポートし、保存します。
  7. Go back to the main screen and select the Open an existing keystore from disk option, select cacerts (for example $JAVA_HOME/lib/security/cacerts ) then enter the password (the default is changeit).
  8. [信頼済みの証明書をロードされたキーストアにインポートする] ボタンを選択します。
  9. 手順 6 で保存した証明書を選択し、信頼できるかどうか、適切なエイリアス (例:confluence) が与えられているかどうかを確認します。
    1. 以下の様なエラーが表示された場合: 
    2. 該当する場合は 、OK をクリックして信用された証明書を受諾します。
  10. キーストアをディスクに保存します。
  11. Bitbucket を再起動します。
  12. ホストに接続できるかテストします。 

コマンドラインを使用したインストール

  1. 証明書を取得します (google.comを、Bitbucket が接続しようとしているサーバーの FQDN に置き換えます)。
    Unix の場合:

                      openssl s_client -connect google.com:443 < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > public.crt
                    

    Windows:

                      openssl s_client -connect google.com:443 < NUL | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > public.crt
                    

    (info) 上記のコマンドは、環境に Sed for WindowsOpenSSL がインストールされている場合にのみ実行されます。Sed または OpenSSL をインストールしていないか、インストールする予定がない場合、代替手段として以下の手順を利用できます。次のコマンドを発行します。

                      openssl s_client -connect google.com:443
                    

    Save the output to a file called  public.cert.  Edit the the public.cert file so it contains only what is between the BEGIN CERTIFCATE and END CERTIFICATElines. This is how your file should look like after you edited it:

                      -----BEGIN CERTIFICATE-----
    < Certificate content as fetched by the command line. 
    Don't change this content, only remove what is before 
    and after the BEGIN CERTIFICATE and END CERTIFICATE. 
    That's what your Sed command is doing for you :-) >
    -----END CERTIFICATE-----
                    
  • 証明書をインポートする。

                      <JAVA_HOME>/bin/keytool -import -alias <server_name> -keystore <JAVA_HOME>/jre/lib/security/cacerts -file public.crt
                    

他のキーストアの場所

Java will normally use a system-wide keystore in $JAVA_HOME/jre/lib/security/cacerts, but it is possible to use a different keystore by specifying a parameter, -Djavax.net.ssl.trustStore=/path/to/keystore, where '/path/to/keystore' is the absolute file path of the alternative keystore.

However, setting this is not recommended because if Java is told to use a custom keystore (eg. containing a self-signed certificate), then Java will not have access to the root certificates of signing authorities found in $JAVA_HOME/jre/lib/security/cacerts, and accessing most CA-signed SSL sites will fail. It is better to add new certificates (eg. self-signed) to the system-wide keystore (as above).

デバッグ

問題は主に次の2つのうちのいずれかです。

  • 証明書が正しくないキーストアにインストールされている。
  • 接続しようとしている SSL サービスの証明書がキーストアに含まれていない。
最終更新日: 2018 年 9 月 29 日

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

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