Skip to main content

TLSの設定

信頼できる認証機関によって署名された証明書を使用できるように、your GitHub Enterprise Server instance で Transport Layer Security (TLS) を設定できます。

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 を構成すると、your GitHub Enterprise Server instance に短いダウンタイムが発生します。

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。

    サイト管理者設定にアクセスするための宇宙船アイコンのスクリーンショット

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

    [サイト管理者] リンクのスクリーンショット 1. 左側のサイドバーで、 [Management Console] をクリックします。 左側のサイドバーの [[Management Console]] タブ 1. 左側のサイドバーで、 [プライバシー] をクリックします。 設定サイドバーの [プライバシー] タブ 1. [TLS のみ] (推奨) を選択します。 TLS のみを選択するチェック ボックス

  3. [TLS Protocol support] で、許可するプロトコルを選択します。 TLS プロトコルを選ぶためのオプションのラジオ ボタン

  4. [証明書] の下の [ファイルの選択] をクリックして、インストールする TLS 証明書または証明書チェーン (PEM 形式) を選びます。 このファイルの拡張子は、通常、 .pem.crt、または .cer です。 TLS 証明書ファイルを見つけるためのボタン

  5. [暗号化されていないキー] で [ファイルの選択] をクリックして、インストールする RSA キー (PEM 形式) を選びます。 通常、このファイルの拡張子は .key です。 TLS キー ファイルを見つけるためのボタン

  6. 左側のサイドバーで、 [設定の保存] をクリックします。

    [Management Console] の [設定の保存] ボタンのスクリーンショット

    注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。

  7. 設定の実行が完了するのを待ってください。

    インスタンスの設定

Let's Encryptのサポートについて

Let's Encryptは公開の証明書認証者で、ACMEプロトコルを使ってブラウザが信頼するTLS証明書を、無料で自動的に発行してくれます。 アプライアンスのためのLet's Encryptの証明書は、手動のメンテナンスを必要とせず自動的に取得及び更新できます。

Let's Encryptの自動化を利用するには、アプライアンスをHTTP経由で公にアクセスできるようなホスト名で設定していなければなりません。 アプライアンスは、アウトバウンドのHTTPS接続ができるようになっていなければなりません。

Let's Encrypt を使って TLS 証明書管理の自動化を有効にすると、your GitHub Enterprise Server instance は Let's Encrypt のサーバーに接続して証明書を取得します。 証明書を更新するには、Let's EncryptのサーバはインバウンドのHTTPリクエストで設定されたドメイン名の制御を検証しなければなりません。

また、your GitHub Enterprise Server instance で ghe-ssl-acme コマンド ライン ユーティリティを使って、Let's Encrypt の証明書を自動的に生成することもできます。 詳細については、「コマンド ライン ユーティリティ」を参照してください。

Let's Encryptを使ったTLSの設定

Let's Encryptの自動化を利用するには、アプライアンスをHTTP経由で公にアクセスできるようなホスト名で設定していなければなりません。 アプライアンスは、アウトバウンドのHTTPS接続ができるようになっていなければなりません。

警告: TLS を構成すると、your GitHub Enterprise Server instance に短いダウンタイムが発生します。

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅の をクリックします。

    サイト管理者設定にアクセスするための宇宙船アイコンのスクリーンショット

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

    [サイト管理者] リンクのスクリーンショット 1. 左側のサイドバーで、 [Management Console] をクリックします。 左側のサイドバーの [[Management Console]] タブ 1. 左側のサイドバーで、 [プライバシー] をクリックします。 設定サイドバーの [プライバシー] タブ 1. [TLS のみ] (推奨) を選択します。 TLS のみを選択するチェック ボックス

  3. [Let's Encrypt を使用した TLS 証明書管理の自動化を有効にする] を選びます。 Let's Encrypt を有効にするためのチェックボックス 1. 左側のサイドバーで、 [設定の保存] をクリックします。

    [Management Console] の [設定の保存] ボタンのスクリーンショット

    注: [Management Console] に設定を保存すると、システム サービスが再起動され、ユーザーに表示されるダウンタイムが発生する可能性があります。

  4. 設定の実行が完了するのを待ってください。

    インスタンスの設定 1. 左側のサイドバーで、 [プライバシー] をクリックします。 設定サイドバーの [プライバシー] タブ

  5. [TLS 証明書の要求] をクリックします。 [TLS 証明書の要求] ボタン

  6. [状態] が "STARTED" から "DONE" に変わるのを待ちます。 Let's Encrypt の状態

  7. [Save configuration] をクリックします。