GitHub platform security and HTTPS connectivity:SHA-1廃止で組織が優先すべきリスク低減策

GitHub platform security and HTTPS connectivity を利用している組織は、2026年4月20日の GitHub による「SHA-1 in HTTPS」の廃止告知を、単なる暗号アルゴリズムの更新ではなく、古いブラウザ、Gitクライアント、API連携、CI/CD基盤が GitHub に接続できなくなる可能性がある変更として扱うべきです。

結論から言うと、優先して確認すべき対象は「人が使うブラウザ」よりも、放置されやすい自動化環境です。古いOS上のビルドエージェント、自己管理のGitクライアント、社内プロキシ、古いJava・OpenSSL・libcurlに依存するAPI連携は、ブラウザより発見が遅れやすく、業務停止につながりやすい領域です。

GitHub は、github.com、GitHub Enterprise Cloud、GitHub Enterprise Cloud with Data Residency における HTTPS/TLS の SHA-1 利用を段階的に廃止すると発表しています。2026年7月14日に一時的な無効化、2026年9月15日に完全無効化が予定されています。GitHub Enterprise Server は今回の変更対象外です。(The GitHub Blog)

目次

GitHub platform security and HTTPS connectivity で何が変わるのか

今回の変更は、GitHub platform security and HTTPS connectivity において、HTTPS通信で使われる古い暗号方式への後方互換を縮小するものです。

GitHub の告知では、影響を受ける可能性がある対象として、GitHub Webサイトを閲覧するブラウザ、GitHub APIを利用するソフトウェア、HTTPS経由でpush/pullするGitクライアントが挙げられています。対象は github.com、GitHub Enterprise Cloud、GitHub Enterprise Cloud with Data Residency であり、GitHub Enterprise Server は含まれていません。(The GitHub Blog)

重要なのは、「GitHubにログインできるか」だけでは確認が足りない点です。実務では、以下のような経路で GitHub への HTTPS 接続が発生します。

接続元代表例見落としやすい理由
開発者端末ブラウザ、Git CLI、GitHub Desktop、IDE拡張端末ごとにOSやGitの更新状況が異なる
CI/CDGitHub Actions self-hosted runner、Jenkins、GitLab Runner、Azure DevOps Agent古いOSイメージや固定バージョンのGitが残りやすい
API連携GitHub Apps、社内ポータル、監査ツール、Webhook処理実行環境のTLSライブラリが古い可能性がある
セキュリティ製品SCA、SBOM、脆弱性管理、コードスキャン連携ベンダー製品の内部実装を把握しにくい
ネットワーク中継プロキシ、SSLインスペクション、CASB、DLP通信経路上でTLS設定が変更される場合がある
コンテナ・VM古いベースイメージ、長期稼働サーバーアプリは新しくてもOSライブラリが古い場合がある

今回の対応では、GitHubの画面が開けるかどうかだけでなく、誰が、どの環境から、どのTLSスタックでGitHubに接続しているかを棚卸しする必要があります。

スケジュールをリスク管理の基準日にする

GitHub の予定では、2026年7月14日に brownout と呼ばれる一時的な無効化が実施されます。時間は 00:00〜18:00 UTC で、日本時間では 2026年7月14日 9:00 から 7月15日 3:00 までです。この brownout では SHA-1 が一時的に無効化されますが、CDN は対象外とされています。完全無効化は 2026年9月15日で、GitHub およびパートナーCDNの HTTPS/TLS における SHA-1 が無効化される予定です。(The GitHub Blog)

日付変更内容組織側の見方
2026年4月20日GitHub が SHA-1 in HTTPS の廃止予定を告知影響調査を開始する基準日
2026年7月14日 00:00〜18:00 UTCbrownout。SHA-1を一時的に無効化。CDNは対象外本番相当の接続テスト日として扱う
2026年9月15日GitHub とパートナーCDNで完全無効化未対応環境は接続失敗リスクが高まる

特に注意すべきなのは、7月の brownout で問題が出なかったとしても、9月の完全無効化で初めて影響が出る可能性がある点です。GitHub の告知では brownout はCDNを対象外としているため、CDN経由の接続や一部の配信経路に依存する処理は、7月の確認だけで安全と判断しない方がよいでしょう。(The GitHub Blog)

なぜ SHA-1 廃止はセキュリティ上重要なのか

SHA-1 は古くから使われてきたハッシュアルゴリズムですが、現在のセキュリティ基準では安全な選択肢とは見なされにくくなっています。NIST は SHA-1 に依存している場合、より安全な SHA-2 または SHA-3 系列へ移行することを推奨しています。(NIST)

TLSの文脈でも、IETFの RFC 9155 は TLS 1.2 / DTLS 1.2 のデジタル署名における MD5 と SHA-1 の利用を非推奨とし、クライアントが signature_algorithms 拡張に MD5 や SHA-1 を含めてはならないとしています。なお、RFC 9155 は HMACで使われるSHA-1まで一律に廃止する文書ではありません。(RFCエディタ)

つまり今回の GitHub の変更は、GitHub だけの独自判断というより、暗号技術全体の移行トレンドに沿ったものです。組織としては「GitHub対応」という狭い範囲で見るのではなく、古い暗号方式への依存を減らす継続的なセキュリティ改善として位置づけるべきです。

影響が大きい組織の特徴

次の条件に当てはまる組織は、GitHub platform security and HTTPS connectivity の変更による影響を早めに確認すべきです。

組織・環境の特徴想定されるリスク
長期サポート切れ、または更新が遅れているOSを使っているTLSライブラリや証明書検証の実装が古い
ビルドサーバーや踏み台サーバーを長期間更新していないGit pull、依存関係取得、リリース処理が失敗する
Dockerベースイメージを固定しているイメージ内のOpenSSL、Git、curlが古いまま残る
Java、Python、Node.js、Rubyなどの古いランタイムを使っているGitHub API接続やWebhook処理でTLSハンドシェイクが失敗する可能性がある
社内プロキシやSSLインスペクションを使っているクライアントとGitHubの間で暗号設定が変わる可能性がある
監査・脆弱性管理ツールがGitHub APIに依存しているセキュリティ監視やコンプライアンス証跡が途切れる
GitHub Enterprise Cloudをグローバル拠点で利用している国・拠点ごとのネットワーク機器差分で一部だけ障害化する

特に Security teams、compliance leads、platform architects は、単に「開発者が困るかどうか」ではなく、ソフトウェア供給網、監査ログ取得、リリース運用、インシデント対応に影響するかを基準に優先順位を付ける必要があります。

優先順位は「古い環境」ではなく「業務停止インパクト」で決める

SHA-1廃止対応では、古い端末をすべて一斉に探すより、まず業務影響が大きい接続経路から確認する方が現実的です。

優先度対象理由最初に確認すること
P0本番リリース、障害対応、セキュリティ監視に使うGitHub接続失敗時の事業影響が大きいCI/CD、監査ツール、緊急デプロイ手順
P1GitHub APIを使う社内システム利用者が気づく前に処理停止する可能性がある実行環境、TLSライブラリ、APIクライアント
P1self-hosted runner、ビルドエージェント古いOSや固定イメージが残りやすいOS、Git、OpenSSL、curl、証明書ストア
P2開発者端末のGit over HTTPS利用者からの問い合わせが増えやすいGitバージョン、OS更新、IDE連携
P2社内プロキシ、SSLインスペクション影響範囲が広く、原因切り分けが難しいTLSポリシー、例外設定、ログ
P3ブラウザ閲覧のみの利用最新ブラウザなら影響は比較的小さいブラウザ更新ポリシー

判断基準は、「接続元の古さ」だけでは不十分です。たとえば、古い開発用PCよりも、古いまま動いているリリース用Jenkinsエージェントの方が優先度は高くなります。障害時に誰が困るかではなく、止まると何ができなくなるかで判断してください。

まず作るべき棚卸しリスト

影響調査では、最初から完璧なCMDBを作ろうとすると進みません。まずは GitHub への HTTPS 接続を発生させるものを、以下の項目で一覧化します。

項目記入例確認ポイント
接続元名Jenkins release agent 01サーバー名、ツール名、ジョブ名を明確にする
用途本番リリース時のgit pull業務影響を判断できる粒度で書く
接続先github.com、api.github.com、raw.githubusercontent.com などAPI、Git、コンテンツ取得を分ける
実行環境Ubuntu、Windows Server、コンテナ、VMOS更新の可否を確認する
利用コンポーネントGit、curl、Java、OpenSSL、libcurlTLSを担う部品を特定する
管理者Platform team、Security team、外部ベンダー対応責任者を決める
重要度P0、P1、P29月までの対応順を決める
検証状況未確認、成功、要修正brownout前後で更新する

この棚卸しは、セキュリティチームだけで完結しません。Platform team、SRE、DevOps、IT管理、ネットワーク、コンプライアンス担当を巻き込み、GitHubに接続しているがGitHub管理者からは見えないシステムを洗い出すことが重要です。

実務で使える確認手順

ブラウザは github.dev で接続確認する

GitHub は、ブラウザの確認方法として、SHA-1 がすでに無効化されている github.dev へのアクセスを案内しています。接続エラーなく読み込める場合、そのブラウザはより新しい HTTPS 構成に対応しているとされています。(The GitHub Blog)

ただし、これは主にブラウザ確認のための簡易テストです。ブラウザで成功したからといって、同じ端末上のGit CLI、IDE、APIクライアント、社内プロキシ経由の全接続が安全とは限りません。

Gitクライアントは「Git本体」と「TLSバックエンド」の両方を見る

GitHub は、Gitクライアントについて、最近のバージョンのGitを使い、OSやコンポーネントを最新に保つことを推奨しています。また、GitはHTTPS対応のために複数のライブラリやバックエンドを使う場合があり、LinuxではOpenSSLがTLSバックエンドとして使われる例が挙げられています。(The GitHub Blog)

確認時は、次のようにGit本体だけでなく関連コンポーネントも見ます。

git --version
curl --version
openssl version

Windows環境では、Git for Windows、Git Credential Manager、社内プロキシ、OSの証明書ストアの組み合わせも確認対象です。macOSでは、システムのTLS実装や開発ツールの更新状況が関係します。Linuxでは、OpenSSL、GnuTLS、libcurl、ca-certificates、ディストリビューションのサポート状態をあわせて確認してください。

API連携はランタイムとライブラリを確認する

GitHub APIに接続するアプリケーションでは、コード上のAPIエンドポイントだけでなく、実行環境のTLS対応を確認します。GitHub もAPI利用について、モダンなフレームワークまたはライブラリを使うよう案内しています。(The GitHub Blog)

確認対象は、たとえば次のようなものです。

言語・環境見るべきポイント
JavaJDK/JREのバージョン、信頼ストア、HTTPクライアントライブラリ
PythonPython本体、OpenSSLリンク、requests/urllib3
Node.jsNode.jsのバージョン、TLS設定、HTTPクライアント
RubyRuby本体、OpenSSL拡張、Net::HTTPや利用Gem
GoGoランタイム、ビルド済みバイナリの再ビルド要否
.NET.NETランタイム、OS側TLS設定、HttpClient

古いアプリでは、TLS設定をコードで固定していることがあります。たとえば「特定のプロトコルだけを許可する」「古い暗号スイートを明示する」「証明書検証を独自実装する」といった処理がある場合、GitHub側の変更で接続が失敗する可能性があります。

brownoutを本番同等テストとして活用する

2026年7月14日の brownout は、単なる様子見ではなく、本番相当の接続テストとして使うべきです。特に日本時間では業務時間中に開始されるため、事前に観測項目を決めておくと効果的です。

brownout前に準備すること目的
重要ジョブの一覧を作るどの処理がGitHubに依存しているか明確にする
監視項目を決めるTLSエラー、API失敗、Git clone失敗を検知する
担当者を割り当てるSecurity、Platform、Network、DevOpsの連携を早める
一時回避策を決めるリリース停止、ジョブ延期、代替手順を判断しやすくする
ログ保存先を決める9月の完全無効化前に再発防止へつなげる

brownout中に確認したいログは、Gitの標準出力だけではありません。CI/CDのジョブログ、プロキシログ、APIクライアントのエラーログ、ネットワーク機器のTLS関連ログ、セキュリティ製品の通信ログも確認します。

よくあるエラーパターンには、TLS handshake failure、unsupported signature algorithm、certificate verify failed、SSL connection error などがあります。ただし、製品やライブラリによって表示は異なります。エラー文だけで判断せず、どの接続元・どのTLS実装・どの経路で失敗したかを記録してください。

リスク低減策は「更新」「標準化」「例外管理」の3段階で進める

まず更新できるものを更新する

最も効果的な対策は、古いOS、Git、ブラウザ、TLSライブラリ、ランタイムを更新することです。GitHubの告知でも、ブラウザ、API利用ライブラリ、Gitクライアントについて、モダンで更新されたものを使うことが推奨されています。(The GitHub Blog)

特に優先したい更新対象は次の通りです。

対象推奨アクション
Gitクライアントサポート中の最新版系へ更新する
CI/CDエージェントOSイメージ、Git、curl、OpenSSLを更新する
コンテナイメージベースイメージを更新し、再ビルドする
API連携アプリランタイムとHTTP/TLSライブラリを更新する
プロキシ・SSLインスペクションTLSポリシーと証明書チェーン処理を確認する
開発者端末OS更新、ブラウザ更新、Git更新を標準化する

ポイントは、アプリケーションだけを更新して終わりにしないことです。TLSはOS、ライブラリ、ランタイム、ネットワーク機器が関係するため、表面上のアプリバージョンだけでは判断できません。

標準イメージと標準ランタイムを決める

Platform architects にとって重要なのは、個別対応を減らすことです。各チームが自由に古いDockerイメージや古いJDKを使っている状態では、今回のような暗号方式の廃止があるたびに影響調査が難しくなります。

組織として、次のような標準を用意すると対応が安定します。

標準化する項目具体例
CI/CDの標準イメージサポート中のOS、Git、curl、OpenSSLを含むイメージ
開発端末の標準構成OS更新ポリシー、Git更新、ブラウザ更新
API連携の標準ランタイムサポート中のJava、Python、Node.js、.NETなど
GitHub接続の標準経路プロキシ利用有無、SSLインスペクションの扱い
監査ログ取得方法GitHub API接続に失敗した場合の検知方法

標準化の目的は、統制を強めることだけではありません。障害時に「どの環境なら安全か」を素早く判断できるようにすることです。

更新できない環境は例外として管理する

すぐに更新できない古いシステムがある場合は、「例外」として管理します。例外管理では、単に残す理由を書くのではなく、期限、代替策、業務影響を明確にします。

例外管理項目記載すべき内容
対象システムシステム名、接続元、GitHub接続用途
残す理由ベンダー制約、移行中、互換性問題など
リスク9月15日以降に失敗する可能性がある処理
暫定対策接続経路変更、ジョブ移設、手動手順など
期限完全無効化前の対応完了日
責任者技術責任者と業務責任者

Compliance leads は、この例外管理を監査証跡として残しておくとよいでしょう。暗号方式の廃止対応は、単なるIT運用ではなく、セキュリティ基準への適合性にも関係します。

GitHub Enterprise Server 利用組織も無関係ではない

GitHub Enterprise Server は今回の GitHub 側の変更対象外です。GitHub の告知でも、GitHub Enterprise Server は影響を受けないと明記されています。(The GitHub Blog)

ただし、GitHub Enterprise Server だけを使っている組織でも、次のような場合は確認が必要です。

ケース確認すべき理由
GitHub Enterprise Cloud と併用しているCloud側の接続が影響を受ける
GitHub.com上のOSSリポジトリを参照している依存関係取得やビルドでgithub.comへ接続する
GitHub APIを外部ツールが利用している監査・分析・セキュリティ製品がCloud APIを使う可能性がある
将来Cloud移行を計画している移行前に接続基盤を更新しておく必要がある

「自社はGHESだから対象外」と即断するのは危険です。GitHub.comへの接続がゼロであることを、CI/CD、開発端末、プロキシログ、依存関係管理の観点から確認してください。

Git over SSHへ逃がす判断は慎重にする

HTTPS経由のGit接続に不安があると、Git over SSHへ切り替える案が出ることがあります。確かに今回の告知はHTTPS/TLSに関するものですが、SSHへの一括切り替えを安易な回避策にするのはおすすめできません。

理由は、認証・監査・鍵管理・ネットワーク制御の前提が変わるためです。HTTPSではトークン管理やSSO、プロキシ制御を前提にしていた組織でも、SSHに切り替えると鍵の棚卸し、失効、端末紛失時の対応、監査ログの見方を再設計する必要があります。

SSHを使う場合は、次の点を事前に確認してください。

確認項目判断基準
鍵管理個人鍵の作成、保管、失効手順が明確か
SSO・認可組織のアクセス制御ポリシーと整合しているか
監査誰がどのリポジトリへアクセスしたか追跡できるか
ネットワークSSH通信が許可されているか、プロキシ要件と矛盾しないか
運用負荷開発者・CI/CD双方で運用できるか

基本方針としては、SSHへ逃がすよりも、HTTPS接続環境をモダンなTLS構成へ更新する方が望ましいです。

失敗しやすいポイント

ブラウザ確認だけで完了扱いにする

GitHub の github.dev テストは有用ですが、ブラウザ確認だけでは自動化環境のリスクを確認できません。CI/CD、API連携、セキュリティ製品、プロキシ経由の接続を別枠で確認してください。

Gitのバージョンだけを見てTLSバックエンドを見ない

Git本体が比較的新しくても、OSやOpenSSL、libcurl、証明書ストアが古い場合があります。特にLinuxサーバーやコンテナでは、Git、curl、OpenSSL、ca-certificatesをセットで確認することが重要です。

7月の brownout で問題がなければ安全と判断する

7月の brownout はCDNを対象外としています。9月15日の完全無効化ではGitHubとパートナーCDNが対象になるため、7月に問題が出なかった接続でも、9月前に再確認してください。(The GitHub Blog)

ベンダー製品の内部接続を見落とす

脆弱性管理、コード品質、SBOM、監査、バックアップ、リリース管理などの製品が、内部でGitHub APIやHTTPS接続を使っていることがあります。自社管理のコードだけでなく、SaaSやエージェント型製品も対象に含めます。

例外を「後で対応」にする

完全無効化の日付が決まっている変更では、「後で対応」はリスクになります。更新できない環境は、期限付きの例外として管理し、9月15日前に廃止、移行、代替手順のいずれかを決めてください。

Security teams が取るべきアクション

Security teams は、暗号方式の廃止をセキュリティ改善テーマとして扱い、組織全体のリスク可視化を進めます。

アクション実施内容
影響範囲の定義github.com、GitHub API、Git over HTTPS、CDN経由の接続を対象にする
リスク分類P0〜P3で業務影響を整理する
監視強化TLSエラー、API失敗、Git操作失敗を検知する
brownout対応7月14日の観測体制を整える
例外管理更新できない環境の期限と責任者を明確にする

Security teams がやるべきことは、全端末の詳細調査を一人で抱えることではありません。各チームが調査しやすい基準、テンプレート、期限を示すことです。

Compliance leads が取るべきアクション

Compliance leads は、今回の変更を監査・統制の観点で整理します。SHA-1は業界全体で移行が進む古いアルゴリズムであり、NISTもSHA-2またはSHA-3への移行を推奨しています。(NIST)

アクション実施内容
証跡化影響調査、更新計画、例外承認を記録する
ポリシー確認暗号方式、TLS、外部SaaS接続に関する社内基準を確認する
ベンダー確認セキュリティ製品や連携ツールのGitHub接続対応を確認する
監査対応いつ、誰が、どのリスクを受容したか説明できる状態にする

監査で重要なのは、「問題が起きなかった」ことではなく、変更を認識し、影響を評価し、優先順位を付けて対応したことを説明できる状態です。

Platform architects が取るべきアクション

Platform architects は、今回の対応を一時的な個別修正で終わらせず、プラットフォーム標準の改善につなげます。

アクション実施内容
標準イメージ整備CI/CD、開発コンテナ、ランナーの標準イメージを更新する
接続経路の整理GitHubへのHTTPS接続経路とプロキシ設定を明確にする
ランタイム標準化サポート中の言語ランタイムとHTTPクライアントを推奨する
自動検出古いOS、古いGit、古いOpenSSLを検出する仕組みを作る
再利用可能な手順チームごとに使える確認手順とチェックリストを提供する

特にCI/CD基盤では、古いビルドエージェントが複数チームに共有されていることがあります。1つの古いランナーが複数のプロダクトリリースを止める可能性があるため、ランナー単位での棚卸しを優先してください。

実行チェックリスト

最後に、GitHub platform security and HTTPS connectivity を使う組織が取るべき行動を整理します。

期限の目安やること
すぐGitHubへのHTTPS接続元を棚卸しする
すぐP0/P1のCI/CD、API連携、監査ツールを特定する
2026年7月14日前古いOS、Git、curl、OpenSSL、ランタイムを更新する
2026年7月14日brownout中に本番相当の処理を監視する
brownout後失敗ログを分析し、9月前に修正する
2026年9月15日前CDN経由を含む接続を再確認する
継続的に古い暗号方式や古いTLS環境を例外管理する

今回の GitHub starts sunsetting SHA-1 for HTTPS traffic は、単なる接続仕様の変更ではなく、組織の開発基盤がどれだけ古い暗号方式に依存しているかを確認する機会です。

まずは、GitHubにHTTPS接続している人・ツール・自動化環境を棚卸しし、P0/P1の業務影響が大きい経路から更新してください。7月14日の brownout を検証機会として使い、9月15日の完全無効化までに、更新できない環境を例外として管理する。これが、Security teams、compliance leads、platform architects が優先すべき現実的なリスク低減策です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次