このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-09-23. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

TLSの設定

信頼できる認証機関によって署名された証明書を使用できるように、GitHub Enterprise Serverのインスタンス で 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"を参照してください。

警告: HTTPS 接続をロードバランサでターミネートしている場合、ロードバランサからの GitHub Enterprise Server へのリクエストも HTTPS を使わなければなりません。 接続の HTTP へのダウングレードはサポートされません。

ユーザが2要素認証のFIDO U2Fを利用できるようにするには、インスタンスでTLSを有効化しなければなりません。 詳しい情報については「2 要素認証の設定」を参照してください。

必要な環境

プロダクションでTLSを利用するには、暗号化されていないPEMフォーマットで、信頼済みの証明書認証局によって署名された証明書がなければなりません。

また、証明書には"Subdomain Isolationの有効化"のリストにあるサブドメインに設定されたSubject Alternative Namesが必要で、中間証明書認証局によって署名されたものであれば、完全な証明書チェーンを含んでいる必要があります。 詳しい情報についてはWikipediaの"Subject Alternative Name"を参照してください。

ghe-ssl-generate-csr コマンドを使用すれば、インスタンス用の証明書署名要求 (CSR) を生成できます。 詳細は「コマンドラインユーティリティ」を参照してください。

カスタムのTLS証明書のアップロード

  1. GitHub Enterprise Serverの管理アカウントから、任意のページの右上にあるをクリックしてください。 サイトアドミン設定にアクセスするための宇宙船のアイコン

  2. 左のサイドバーでManagement Consoleをクリックしてください。 左のサイドバーのManagement Consoleタブ

  3. 左のサイドバーでPrivacy(プライバシー)をクリックしてください。 設定サイドバーのプライバシータブ

  4. TLS only (recommended)(TLSのみー推奨)を選択してください。 TLS onlyを選択するチェックボックス

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

  6. "Certificate(証明書)"の下でChoose File(ファイルの選択)をクリックし、インストールしたいTLS証明書もしくは証明書チェーン(PEMフォーマット)を選択してください。 このファイルは通常、.pem.crt.cer といった拡張子を持ちます。 TLS 証明書ファイルを見つけるためのボタン

  7. "Unencrypted key(暗号化されていない鍵)"の下でChoose File(ファイルの選択)をクリックし、インストールするTLS鍵(PEMフォーマット)を選択してください。 このファイルは通常.keyという拡張子を持ちます。 TLS鍵ファイルを見つけるためのボタン

    警告: このTLS鍵はパスフレーズを持っていてはなりません。 詳しい情報については"キーファイルからのパスフレーズの除去"を参照してください。

  8. 左のサイドバーの下でSave settings(設定の保存)をクリックしてください。 Management Console での [Save settings] ボタン

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

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

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

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

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

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

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

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

  1. GitHub Enterprise Serverの管理アカウントから、任意のページの右上にあるをクリックしてください。 サイトアドミン設定にアクセスするための宇宙船のアイコン
  2. 左のサイドバーでManagement Consoleをクリックしてください。 左のサイドバーのManagement Consoleタブ
  3. 左のサイドバーでPrivacy(プライバシー)をクリックしてください。 設定サイドバーのプライバシータブ
  4. TLS only (recommended)(TLSのみー推奨)を選択してください。 TLS onlyを選択するチェックボックス
  5. Enable automation of TLS certificate management using Let's Encrypt(Let's Encryptを使った自動的なTLS証明書管理の有効化)を選択してください。 [Let's Encrypt] を有効化するチェックボックス
  6. 左のサイドバーの下でSave settings(設定の保存)をクリックしてください。 Management Console での [Save settings] ボタン
  7. 設定が完了するのを待ってください。
  8. 左のサイドバーでPrivacy(プライバシー)をクリックしてください。 設定サイドバーのプライバシータブ
  9. Request TLS certificate(TLS証明書のリクエスト)をクリックしてください。 [Request TLS certificate] ボタン
  10. Wait for the "Status" to change from "STARTED" to "DONE". Let's Encrypt status
  11. Save configuration(設定の保存)をクリックしてください。

問題がまだ解決していませんか?