記事のバージョン: Enterprise Server 2.17
SSLのエラーのトラブルシューティング
アプライアンスでSSLの問題が生じたなら、解決のためのアクションを取ってください。
鍵ファイルからのパスフレーズの除去
OpenSSLがインストールされたLinuxマシンを使うなら、パスフレーズを除去できます。
- オリジナルの鍵ファイルの名前を変えてください。
$ mv yourdomain.key yourdomain.key.orig
- パスフレーズなしで新しい鍵を生成してください。
$ openssl rsa -in yourdomain.key.orig -out yourdomain.key
このコマンドを実行すると、鍵のパスフレーズを入力するようプロンプトが表示されます。
OpenSSL に関する詳しい情報については、OpenSSL のドキュメンテーションを参照してください。
SSL証明書あるいは鍵のPEMフォーマットへの変換
OpenSSL をインストールしている場合、openssl
コマンドを使って鍵を PEM フォーマットに変換できます。 たとえば鍵を DER フォーマットから PEM フォーマットに変換できます。
$ openssl rsa -in yourdomain.der -inform DER -out yourdomain.key -outform PEM
あるいは SSL Converter ツールを使って証明書を PEM フォーマットに変換することもできます。 詳しい情報については SSL Converter ツールのドキュメンテーションを参照してください。
鍵のアップロード後の反応のない環境
SSL 鍵のアップロード後に GitHub Enterprise Server インスタンス の反応がない場合、SSL 証明書のコピーを含む詳細事項と合わせて GitHub Enterprise Support に連絡してください。
証明書の検証エラー
Web ブラウザやコマンドラインの Git などのクライアントは、SSL 証明書の正当性が検証できなければエラーメッセージを表示します。 これはしばしば自己署名証明書の場合や、クライアントが認識しない中間ルート証明書から発行された "チェーンドルート" 証明書の場合に生じます。
証明書認証局 (CA) によって署名された証明書を使っている場合は、GitHub Enterprise Server にアップロードする証明書ファイルには CA のルート証明を持つ証明書チェーンが含まれていなければなりません。 そのようなファイルを作成するには、証明書チェーン全体 (「証明書バンドル」とも呼ばれます) を証明書の終わりにつなげ、プリンシパル証明書の先頭にホスト名が来るようにしてください。 ほとんどのシステムでは、以下のようなコマンドでこの処理を行えます:
$ cat yourdomain.com.crt bundle-certificates.crt > yourdomain.combined.crt
証明書バンドル (たとえば bundle-certificates.crt
) は、証明書認証局もしくは SSL のベンダーからダウンロードできるはずです。
自己署名もしくは信頼されない証明書認証者(CA)ルート証明書のインストール
GitHub Enterprise Server アプライアンスが、自己署名もしくは信頼されない証明書を使うネットワーク上の他のマシンとやりとりするのであれば、それらのシステムに HTTPS でアクセスできるようにするために、署名をした CA のルート証明書をシステム全体の証明書ストアにインポートしなければなりません。
- CA のルート証明書をローカルの証明書認証局から取得し、それが PEM フォーマットになっていることを確認してください。
- そのファイルを GitHub Enterprise Server アプライアンスにポート 122 の SSH 経由で "admin" ユーザとしてコピーしてください。
$ scp -P 122 rootCA.crt admin@HOSTNAME:/home/admin
- GitHub Enterprise Server の管理シェルにポート 122 の SSH 経由で "admin" ユーザとして接続します。
$ ssh -p 122 admin@HOSTNAME
- 証明書をシステム全体の証明書ストアにインポートします。
$ ghe-ssl-ca-certificate-install -c rootCA.crt