Skip to main content

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) を生成できます。 詳しい情報については、「コマンドラインユーティリティ」を参照してください。

Your key must be an RSA key and must not have a passphrase. 詳しい情報については"キーファイルからのパスフレーズの除去"を参照してください。

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

Warning: Configuring TLS causes a small amount of downtime for GitHub Enterprise Serverインスタンス.

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

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

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

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

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

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

  8. Under "Unencrypted key", click Choose File to choose an RSA key (in PEM format) to install. このファイルは通常.keyという拡張子を持ちます。 TLS鍵ファイルを見つけるためのボタン

  9. 左のサイドバーの下でSave settings(設定の保存)をクリックしてください。

    Screenshot of the save settings button in the Management Console

    Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.

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

    インスタンスの設定

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接続ができるようになっていなければなりません。

Warning: Configuring TLS causes a small amount of downtime for GitHub Enterprise Serverインスタンス.

  1. From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .

    Screenshot of the rocket ship icon for accessing site admin settings

  2. If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.

    Screenshot of "Site admin" link

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

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

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

  6. Enable automation of TLS certificate management using Let's Encrypt(Let's Encryptを使った自動的なTLS証明書管理の有効化)を選択してください。 [Let's Encrypt] を有効化するチェックボックス

  7. 左のサイドバーの下でSave settings(設定の保存)をクリックしてください。

    Screenshot of the save settings button in the Management Console

    Note: Saving settings in the Management Console restarts system services, which could result in user-visible downtime.

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

    インスタンスの設定

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

  10. Request TLS certificate(TLS証明書のリクエスト)をクリックしてください。 [Request TLS certificate] ボタン

  11. Wait for the "Status" to change from "STARTED" to "DONE". Let's Encrypt status

  12. Save configuration(設定の保存)をクリックしてください。