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