Skip to main content

TLS エラーのトラブルシューティング

アプライアンスで TLS の問題が生じた場合は、解決のためのアクションを取ってください。

鍵ファイルからのパスフレーズの除去

OpenSSLがインストールされたLinuxマシンを使うなら、パスフレーズを除去できます。

  1. オリジナルの鍵ファイルの名前を変えてください。

    mv yourdomain.key yourdomain.key.orig
    
  2. パスフレーズなしで新しい鍵を生成してください。

    openssl rsa -in yourdomain.key.orig -out yourdomain.key
    

このコマンドを実行すると、鍵のパスフレーズを入力するようプロンプトが表示されます。

OpenSSL の詳細については、OpenSSL のドキュメントを参照してください。

TLS 証明書または TLS キーを PEM 形式に変換する

OpenSSL をインストールしている場合、openssl コマンドを使ってキーを PEM 形式に変換できます。 たとえば鍵を DER フォーマットから PEM フォーマットに変換できます。

openssl rsa -in yourdomain.der -inform DER -out yourdomain.key -outform PEM

あるいは SSL Converter ツールを使って証明書を PEM フォーマットに変換することもできます。 詳細については、SSL Converter ツールのドキュメントを参照してください。

鍵のアップロード後に応答しないインストール

TLS キーのアップロード後にお使いの GitHub Enterprise Server インスタンスが応答しない場合は、TLS 証明書のコピーなど、特定の詳細をGitHub Enterpriseサポートにお問い合わせください。 秘密キーが 含まれていないことを確認します。

証明書の検証エラー

Web ブラウザーやコマンドラインの Git などのクライアントでは、TLS 証明書の有効性を検証できないと、エラー メッセージが表示されます。 これはしばしば自己署名証明書の場合や、クライアントが認識しない中間ルート証明書から発行された "チェーンドルート" 証明書の場合に生じます。

証明機関 (CA) によって署名された証明書を使用している場合、 GitHub Enterprise Server にアップロードする証明書ファイルには、その CA のルート証明書を含む証明書チェーンが含まれている必要があります。 そのようなファイルを作成するには、証明書チェーン全体 (「証明書バンドル」とも呼ばれます) を証明書の終わりにつなげ、プリンシパル証明書の先頭にホスト名が来るようにしてください。 ほとんどのシステムでは、以下のようなコマンドでこの処理を行えます:

cat yourdomain.com.crt bundle-certificates.crt > yourdomain.combined.crt

証明機関または TLS ベンダーから証明書バンドル (bundle-certificates.crt など) をダウンロードできるはずです。

自己署名もしくは信頼されない証明書認証者(CA)ルート証明書のインストール

GitHub Enterprise Server アプライアンスが、自己署名証明書または信頼されていない証明書を使用するネットワーク上の他のマシンと対話する場合は、署名 CA のルート証明書をシステム全体の証明書ストアにインポートして、HTTPS 経由でそれらのシステムにアクセスする必要があります。 内部証明機関によって署名された証明書を使う場合は、ルート証明書と任意の中間証明書をインストールする必要があります。

  1. CA のルート証明書をローカルの証明書認証局から取得し、それが PEM フォーマットになっていることを確認してください。

  2. ポート 122 の "管理者" ユーザーとして SSH 経由で GitHub Enterprise Server アプライアンスにファイルをコピーします。

    scp -P 122 rootCA.crt admin@HOSTNAME:/home/admin
    
  3. ポート 122 の "管理者" ユーザーとして SSH 経由で GitHub Enterprise Server 管理シェルに接続します。

    ssh -p 122 admin@HOSTNAME
    
  4. 証明書をシステム全体の証明書ストアにインポートします。

    ghe-ssl-ca-certificate-install -c rootCA.crt
    
  5. 構成を適用するには、次のコマンドを実行します。

    メモ

    構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。

    Shell
    ghe-config-apply
    
  6. 設定の実行が完了するのを待ってください。

TLS 証明書の更新

お使いの GitHub Enterprise Server インスタンス コマンド ライン ユーティリティを使用して、新しい自己署名証明書を生成したり、ghe-ssl-certificate-setup用の既存の TLS 証明書を更新することができます。 詳しくは、「コマンド ライン ユーティリティ」をご覧ください。

TLS 証明書の更新後のサーバー通信に関する問題のトラブルシューティング

証明書の更新後にサーバー上の通信の問題やその他の問題が発生した場合は、インストールにファイルまたはシンボリック リンクが欠落している可能性があります。 Web ログの出力で次のメッセージを確認します。

 certificate verify failed (unable to get issuer certificate)

このメッセージが表示された場合は、証明書が欠落しているか、正しく構成されていない可能性があります。 これにより、アプリケーションのサービスが相互に通信できなくなる可能性があります。

問題を修復するには

  1. 現在の TLS 証明書ディレクトリをバックアップします。

  2. /etc/ssl/certs ディレクトリに存在しない可能性がある証明書とコンテンツを更新するには、次のコマンドを実行します。

    Shell
    sudo update-ca-certificates --verbose --fresh
    

それでも問題が解決しない場合は、GitHub Enterprise サポートにお問い合わせください。