Transport Layer Securityについて
SSL に代わる TLS は、GitHub Enterprise Server の初回起動時に有効になり、自己署名証明書で設定されます。 自己署名証明書は Web ブラウザや Git クライアントから信� �されていないため、TLS を無効にするか、Let's Encrypt などの信� �できる機関によって署名された証明書をアップロードするまで、これらのクライアントは証明書の警告を� �告します。
SSL が有効な� �合、GitHub Enterprise Server アプライアンスは HTTP Strict Transport Security ヘッダーを送信します。 TLSを無効化すると、ブラウザはHTTPへのプロトコルダウングレードを許さないので、ユーザはアプライアンスにアクセスできなくなります。 詳しくは、Wikipedia の「HTTP Strict Transport Security (HSTS)」をご覧く� さい。
警告: ロード バランサーの HTTPS 接続を終了する� �合、ロード バランサーから GitHub Enterprise Server への要求も HTTPS を使用する必要があります。 接続の HTTP へのダウングレードはサポートされません。
ユーザが2要� 認証のFIDO U2Fを利用できるようにするには、インスタンスでTLSを有効化しなければなりません。 詳細については、「2 要� 認証の構成」を参照してく� さい。
前提条件
プロダクションでTLSを利用するには、暗号化されていないPEMフォーマットで、信� �済みの証明書認証局によって署名された証明書がなければなりません。
証明書には、"Subdomain Isolation の有効化" の一覧にあるサブドメイン用に構成されたサブジェクトの別名も必要であり、中間証明機関によって署名されている� �合は完全な証明書チェーンを含める必要があります。 詳しくは、Wikipedia の「サブジェクトの別名」をご覧く� さい。
ghe-ssl-generate-csr
コマンドを使って、インスタンス用の証明書署名要求 (CSR) を生成できます。 詳細については、「コマンド ライン ユーティリティ」を参照してく� さい。
キーは RSA キーでなければならず、パスフレーズは使用できません。 詳しくは、「鍵ファイルからのパスフレーズの除去」をご覧く� さい。
カスタ� のTLS証明書のアップロード
警告: TLS を構成すると、 に短いダウンタイ� が発生します。
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。
-
[サイト管理者] ページにま� 表示されていない� �合は、左上隅の [サイト管理者] をクリックします。
1. 左側のサイドバーで、 [Management Console] をクリックします。 1. 左側のサイドバーで、 [プライバシー] をクリックします。 1. [TLS のみ] (推奨) を選択します。
-
[TLS Protocol support] で、許可するプロトコルを選択します。
-
[証明書] の下の [ファイルの選択] をクリックして、インストールする TLS 証明書または証明書チェーン (PEM 形式) を選びます。 このファイルの拡張子は、通常、 .pem、 .crt、または .cer です。
-
[暗号化されていないキー] で [ファイルの選択] をクリックして、インストールする RSA キー (PEM 形式) を選びます。 通常、このファイルの拡張子は .key です。
-
左側のサイドバーで、 [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システ� サービスが再起動され、ユーザーに表示されるダウンタイ� が発生する可能性があります。
-
設定の実行が完了するのを待ってく� さい。
Let's Encryptのサポートについて
Let's Encryptは公開の証明書認証者で、ACMEプロトコルを使ってブラウザが信� �するTLS証明書を、無料で自動的に発行してくれます。 アプライアンスのためのLet's Encryptの証明書は、手動のメンテナンスを必要とせず自動的に取得及び更新できます。
Let's Encryptの自動化を利用するには、アプライアンスをHTTP経由で公にアクセスできるようなホスト名で設定していなければなりません。 アプライアンスは、アウトバウンドのHTTPS接続ができるようになっていなければなりません。
Let's Encrypt を使って TLS 証明書管理の自動化を有効にすると、 は Let's Encrypt のサーバーに接続して証明書を取得します。 証明書を更新するには、Let's EncryptのサーバはインバウンドのHTTPリクエストで設定されたドメイン名の制御を検証しなければなりません。
また、 で ghe-ssl-acme
コマンド ライン ユーティリティを使って、Let's Encrypt の証明書を自動的に生成することもできます。 詳細については、「コマンド ライン ユーティリティ」を参照してく� さい。
Let's Encryptを使ったTLSの設定
Let's Encryptの自動化を利用するには、アプライアンスをHTTP経由で公にアクセスできるようなホスト名で設定していなければなりません。 アプライアンスは、アウトバウンドのHTTPS接続ができるようになっていなければなりません。
警告: TLS を構成すると、 に短いダウンタイ� が発生します。
-
GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。
-
[サイト管理者] ページにま� 表示されていない� �合は、左上隅の [サイト管理者] をクリックします。
1. 左側のサイドバーで、 [Management Console] をクリックします。 1. 左側のサイドバーで、 [プライバシー] をクリックします。 1. [TLS のみ] (推奨) を選択します。
-
[Let's Encrypt を使用した TLS 証明書管理の自動化を有効にする] を選びます。 1. 左側のサイドバーで、 [設定の保存] をクリックします。
注: [Management Console] に設定を保存すると、システ� サービスが再起動され、ユーザーに表示されるダウンタイ� が発生する可能性があります。
-
設定の実行が完了するのを待ってく� さい。
1. 左側のサイドバーで、 [プライバシー] をクリックします。
-
[TLS 証明書の要求] をクリックします。
-
[状態] が "STARTED" から "DONE" に変わるのを待ちます。
-
[Save configuration] をクリックします。