暗号スイートとアルゴリズムの構成について
GitHub Enterprise Server を使用すると、使用する暗号スイートと暗号アルゴリズムを構成できます。
- ポート 443 (HTTPS Web インターフェイス) と 8443 (HTTPS 管理コンソール) での TLS 接続
- ポート 22 での SSH 接続 (SSH 経由の Git 操作) とポート 122 (管理シェル アクセス)
既定のセキュリティで保護された暗号スイートは、業界標準の TLS セキュリティ強化に関する推奨事項と最新のセキュリティのベスト プラクティスに基づいています。 特定のコンプライアンスまたはセキュリティ要件に特に規定がない限り、ほとんどの組織ではこれらの既定値を使用する必要があります。
組織では、特定の組織のセキュリティ ポリシー、業界標準、または規制要件を満たすために、暗号スイートと暗号アルゴリズムをカスタマイズする必要がある場合があります。
GitHub Enterprise Server 3.19 以降では、TLS 暗号は構成可能であり、Web ゲートウェイはより安全な暗号の既定値を使用します。 既存のインスタンスとの下位互換性を維持するために、新しくプロビジョニングされたインスタンスでは、これらの新しい既定値が使用されます。
警告
過度に制限の厳しい暗号スイートを構成すると、クライアントがインスタンスに接続できなくなる可能性があります。 非運用環境で常に変更をテストし、少なくとも 1 つの暗号スイートがクライアントと互換性があることを確認し、構成の変更を適用した後に接続を確認します。
メモ
TLS 暗号スイートを構成する場合は、構成コマンドでコンマ区切りの値を使用します。 GitHub Enterprise Server は、HAProxy 構成のコンマ区切り記号をコロンに自動的に変換します。 暗号スイートは指定された順序で評価されるため、優先する暗号を最初に一覧表示します。
TLS 暗号スイートの構成
TLS 1.2 および TLS 1.3 接続に使用される暗号スイートを構成できます。
使用可能な TLS 暗号スイートの一覧表示
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
TLS 1.2 の既定のセキュリティで保護された暗号スイートを表示するには、次のコマンドを実行します。
Shell ghe-crypto list tlsv12-ciphersuites
ghe-crypto list tlsv12-ciphersuites -
TLS 1.3 の既定のセキュリティで保護された暗号スイートを表示するには、次のコマンドを実行します。
Shell ghe-crypto list tlsv13-ciphersuites
ghe-crypto list tlsv13-ciphersuites
現在の暗号構成の表示
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
構成された TLS 1.2 暗号スイートを表示するには、次のコマンドを実行します。
Shell ghe-config github-ssl.tlsv12-ciphersuites
ghe-config github-ssl.tlsv12-ciphersuites -
構成された TLS 1.3 暗号スイートを表示するには、次のコマンドを実行します。
Shell ghe-config github-ssl.tlsv13-ciphersuites
ghe-config github-ssl.tlsv13-ciphersuitesこれらのコマンドが空の値を返す場合、インスタンスはセキュリティで保護された既定値を使用しています。
TLS 1.2 暗号スイートの設定
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
`ghe-crypto check` コマンドを使用して、目的の TLS 1.2 暗号スイートを確認します。 `CIPHER1,CIPHER2,CIPHER3`を、暗号スイートのコンマ区切りのリストに置き換えます。Shell ghe-crypto check tlsv12-ciphersuites CIPHER1,CIPHER2,CIPHER3
ghe-crypto check tlsv12-ciphersuites CIPHER1,CIPHER2,CIPHER3例えば次が挙げられます。
ghe-crypto check tlsv12-ciphersuites ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384 -
暗号文字列が有効な場合は、TLS 1.2 暗号スイートを設定します。
CIPHER1,CIPHER2,CIPHER3をコンマ区切りのリストに置き換えます。Shell ghe-config github-ssl.tlsv12-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
ghe-config github-ssl.tlsv12-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'例えば次が挙げられます。
ghe-config github-ssl.tlsv12-ciphersuites 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384' -
構成を確認します。
Shell ghe-config-check
ghe-config-check -
構成を適用するには、次のコマンドを実行します。
メモ
構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。
Shell ghe-config-apply
ghe-config-apply -
設定の実行が完了するのを待ってください。
-
ユーザー メッセージまたはメインテナント モードを構成した場合は、メッセージを削除し、メインテナント モードを無効にします。
TLS 1.3 暗号スイートの設定
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
`ghe-crypto check` コマンドを使用して、目的の TLS 1.3 暗号スイートを確認します。 `CIPHER1,CIPHER2,CIPHER3`を、暗号スイートのコンマ区切りのリストに置き換えます。Shell ghe-crypto check tlsv13-ciphersuites CIPHER1,CIPHER2,CIPHER3
ghe-crypto check tlsv13-ciphersuites CIPHER1,CIPHER2,CIPHER3例えば次が挙げられます。
ghe-crypto check tlsv13-ciphersuites TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256 -
暗号文字列が有効な場合は、TLS 1.3 暗号スイートを設定します。
CIPHER1,CIPHER2,CIPHER3をコンマ区切りのリストに置き換えます。Shell ghe-config github-ssl.tlsv13-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'
ghe-config github-ssl.tlsv13-ciphersuites 'CIPHER1,CIPHER2,CIPHER3'例えば次が挙げられます。
ghe-config github-ssl.tlsv13-ciphersuites 'TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384,TLS_CHACHA20_POLY1305_SHA256' -
構成を確認します。
Shell ghe-config-check
ghe-config-check -
構成を適用するには、次のコマンドを実行します。
メモ
構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。
Shell ghe-config-apply
ghe-config-apply -
設定の実行が完了するのを待ってください。
-
ユーザー メッセージまたはメインテナント モードを構成した場合は、メッセージを削除し、メインテナント モードを無効にします。
SSH 暗号化アルゴリズムの構成
ポート 22 (Git 操作) とポート 122 (管理シェル アクセス) での SSH 接続に使用される暗号化アルゴリズムを構成できます。
使用可能な SSH アルゴリズムの一覧表示
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
既定のセキュリティで保護された SSH 暗号を表示するには、次のコマンドを実行します。
Shell ghe-crypto list ssh-ciphers
ghe-crypto list ssh-ciphers -
セキュリティで保護された既定の SSH MAC アルゴリズムを表示するには、次のコマンドを実行します。
Shell ghe-crypto list ssh-mac-algorithms
ghe-crypto list ssh-mac-algorithms -
既定のセキュリティで保護された SSH キー交換アルゴリズムを表示するには、次のコマンドを実行します。
Shell ghe-crypto list ssh-kex-algorithms
ghe-crypto list ssh-kex-algorithms -
既定のセキュリティで保護された SSH 署名の種類を表示するには、次のコマンドを実行します。
Shell ghe-crypto list ssh-signature-types
ghe-crypto list ssh-signature-types
現在の SSH 構成の表示
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
構成された SSH 暗号を表示するには、次のコマンドを実行します。
Shell ghe-config github-ssl.ssh-ciphers
ghe-config github-ssl.ssh-ciphers -
構成済みの SSH MAC アルゴリズムを表示するには、次のコマンドを実行します。
Shell ghe-config github-ssl.ssh-mac-algorithms
ghe-config github-ssl.ssh-mac-algorithms -
構成されている SSH キー交換アルゴリズムを表示するには、次のコマンドを実行します。
Shell ghe-config github-ssl.ssh-kex-algorithms
ghe-config github-ssl.ssh-kex-algorithms -
構成された SSH 署名の種類を表示するには、次のコマンドを実行します。
Shell ghe-config github-ssl.ssh-signature-types
ghe-config github-ssl.ssh-signature-typesこれらのコマンドが空の値を返す場合、インスタンスはセキュリティで保護された既定値を使用しています。
SSH 暗号の設定
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
`ghe-crypto check` コマンドを使用して、目的の SSH 暗号を確認します。 `cipher1,cipher2,cipher3`をコンマ区切りの暗号リストに置き換えます。Shell ghe-crypto check ssh-ciphers cipher1,cipher2,cipher3
ghe-crypto check ssh-ciphers cipher1,cipher2,cipher3例えば次が挙げられます。
ghe-crypto check ssh-ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com -
暗号文字列が有効な場合は、SSH 暗号を設定します。
cipher1,cipher2,cipher3をコンマ区切りのリストに置き換えます。Shell ghe-config github-ssl.ssh-ciphers 'cipher1,cipher2,cipher3'
ghe-config github-ssl.ssh-ciphers 'cipher1,cipher2,cipher3'例えば次が挙げられます。
ghe-config github-ssl.ssh-ciphers 'chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com' -
構成を確認します。
Shell ghe-config-check
ghe-config-check -
構成を適用するには、次のコマンドを実行します。
メモ
構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。
Shell ghe-config-apply
ghe-config-apply -
設定の実行が完了するのを待ってください。
-
ユーザー メッセージまたはメインテナント モードを構成した場合は、メッセージを削除し、メインテナント モードを無効にします。
SSH MAC アルゴリズムの設定
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
`ghe-crypto check` コマンドを使用して、目的の SSH MAC アルゴリズムを確認します。 `mac1,mac2,mac3`を MAC アルゴリズムのコンマ区切りのリストに置き換えます。Shell ghe-crypto check ssh-mac-algorithms mac1,mac2,mac3
ghe-crypto check ssh-mac-algorithms mac1,mac2,mac3例えば次が挙げられます。
ghe-crypto check ssh-mac-algorithms hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com -
MAC アルゴリズム文字列が有効な場合は、SSH MAC アルゴリズムを設定します。
mac1,mac2,mac3をコンマ区切りのリストに置き換えます。Shell ghe-config github-ssl.ssh-mac-algorithms 'mac1,mac2,mac3'
ghe-config github-ssl.ssh-mac-algorithms 'mac1,mac2,mac3'例えば次が挙げられます。
ghe-config github-ssl.ssh-mac-algorithms 'hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com' -
構成を確認します。
Shell ghe-config-check
ghe-config-check -
構成を適用するには、次のコマンドを実行します。
メモ
構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。
Shell ghe-config-apply
ghe-config-apply -
設定の実行が完了するのを待ってください。
-
ユーザー メッセージまたはメインテナント モードを構成した場合は、メッセージを削除し、メインテナント モードを無効にします。
SSH キー交換アルゴリズムの設定
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
`ghe-crypto check` コマンドを使用して、目的の SSH キー交換アルゴリズムを確認します。 `kex1,kex2,kex3`を、キー交換アルゴリズムのコンマ区切りのリストに置き換えます。Shell ghe-crypto check ssh-kex-algorithms kex1,kex2,kex3
ghe-crypto check ssh-kex-algorithms kex1,kex2,kex3例えば次が挙げられます。
ghe-crypto check ssh-kex-algorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521 -
キー交換アルゴリズム文字列が有効な場合は、SSH キー交換アルゴリズムを設定します。
kex1,kex2,kex3をコンマ区切りのリストに置き換えます。Shell ghe-config github-ssl.ssh-kex-algorithms 'kex1,kex2,kex3'
ghe-config github-ssl.ssh-kex-algorithms 'kex1,kex2,kex3'例えば次が挙げられます。
ghe-config github-ssl.ssh-kex-algorithms 'curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp521' -
構成を確認します。
Shell ghe-config-check
ghe-config-check -
構成を適用するには、次のコマンドを実行します。
メモ
構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。
Shell ghe-config-apply
ghe-config-apply -
設定の実行が完了するのを待ってください。
-
ユーザー メッセージまたはメインテナント モードを構成した場合は、メッセージを削除し、メインテナント モードを無効にします。
SSH 署名の種類の設定
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
`ghe-crypto check` コマンドを使用して、目的の SSH 署名の種類を確認します。 `sig1,sig2,sig3`を、署名の種類のコンマ区切りのリストに置き換えます。Shell ghe-crypto check ssh-signature-types sig1,sig2,sig3
ghe-crypto check ssh-signature-types sig1,sig2,sig3例えば次が挙げられます。
ghe-crypto check ssh-signature-types ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384 -
署名の種類の文字列が有効な場合は、SSH 署名の種類を設定します。
sig1,sig2,sig3をコンマ区切りのリストに置き換えます。Shell ghe-config github-ssl.ssh-signature-types 'sig1,sig2,sig3'
ghe-config github-ssl.ssh-signature-types 'sig1,sig2,sig3'例えば次が挙げられます。
ghe-config github-ssl.ssh-signature-types 'ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384' -
構成を確認します。
Shell ghe-config-check
ghe-config-check -
構成を適用するには、次のコマンドを実行します。
メモ
構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。
Shell ghe-config-apply
ghe-config-apply -
設定の実行が完了するのを待ってください。
-
ユーザー メッセージまたはメインテナント モードを構成した場合は、メッセージを削除し、メインテナント モードを無効にします。
暗号構成のトラブルシューティング
クライアントが暗号構成を変更した後に お使いの GitHub Enterprise Server インスタンス に接続できない場合は、問題のトラブルシューティングを行うことができます。
- クライアントが構成済みの TLS または SSH プロトコルのバージョンをサポートしていることを確認します。
- 少なくとも 1 つの構成済みの暗号スイートがクライアントと互換性があることを確認します。
- TLS ハンドシェイクエラーまたは SSH 接続エラーのインスタンス ログを確認します。 ログへのアクセスの詳細については、 システム ログについて を参照してください。
- 既定の設定を一時的に復元して、問題が暗号関連であることを確認します。 詳細については、「 既定の暗号スイートとアルゴリズム設定の復元」を参照してください。
- 既定値を復元した後も問題が解決しない場合は、GitHub Enterprise サポート にお問い合わせください。
既定の暗号スイートとアルゴリズム設定の復元
既定のセキュリティで保護された暗号スイートまたはアルゴリズムを復元するには、構成値の設定を解除します。
-
ターゲットの GitHub Enterprise Server インスタンスに SSH で接続します。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
ssh -p 122 admin@HOSTNAME -
構成設定の設定を解除します。
SETTINGを、既定値に戻す設定の名前に置き換えます。Shell ghe-config --unset github-ssl.SETTING
ghe-config --unset github-ssl.SETTINGたとえば、既定の TLS 1.2 暗号スイートを復元するには、次のようにします。
ghe-config --unset github-ssl.tlsv12-ciphersuites -
構成を適用するには、次のコマンドを実行します。
メモ
構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。
Shell ghe-config-apply
ghe-config-apply -
設定の実行が完了するのを待ってください。
-
ユーザー メッセージまたはメインテナント モードを構成した場合は、メッセージを削除し、メインテナント モードを無効にします。