GitHubがHTTPS通信のSHA-1廃止へ:影響範囲と最初に確認すべき対応

GitHub は 2026年4月20日、HTTPS 通信における SHA-1 の段階的な廃止を発表しました。結論から言うと、github.com、GitHub Enterprise Cloud、GitHub Enterprise Cloud with Data Residency を HTTPS 経由で利用している環境では、古いブラウザ・Git クライアント・API クライアント・TLS ライブラリを早めに確認する必要があります。一方で、GitHub Enterprise Server は今回の対象外です。(The GitHub Blog)

特に注意すべきなのは、この変更が「Git のコミットハッシュに使われる SHA-1」そのものの話ではなく、GitHub platform security and HTTPS connectivity に関わる HTTPS/TLS 接続上の SHA-1 廃止である点です。GitHub をブラウザで開く、GitHub API を呼び出す、git clone や git push を HTTPS で実行する、といった日常的な操作に影響する可能性があります。

目次

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

今回の変更は、GitHub とその CDN における HTTPS 通信で SHA-1 の利用を取り除くものです。GitHub の公式 Changelog では、影響を受ける対象として、GitHub Web サイトを閲覧するブラウザ、GitHub API を利用するソフトウェア、HTTPS 経由で push / pull する Git クライアントが挙げられています。(The GitHub Blog)

実務上は、次のように捉えると分かりやすいです。

確認対象影響の可能性実務で見るべきポイント
ブラウザ低〜中古い OS や更新されていないブラウザで GitHub にアクセスしていないか
Git クライアント中CI/CD、開発端末、踏み台サーバー、古いコンテナイメージで HTTPS clone / push をしていないか
API クライアント中〜高社内ツール、Bot、GitHub Apps、連携サービスが古い TLS ライブラリを使っていないか
プロキシ・SSL インスペクション中社内プロキシやセキュリティ製品が古い暗号アルゴリズムに依存していないか
GitHub Enterprise Server対象外今回の GitHub.com 側の HTTPS 変更とは切り分けて考える

多くの新しい環境では問題になりにくいものの、古い Linux ディストリビューション、更新されていない OpenSSL、長期間メンテナンスされていない CI ランナー、レガシーな社内 API クライアントは確認対象になります。

重要なスケジュール

GitHub は、完全な無効化の前に一時的な停止期間である brownout を予定しています。公式発表では、2026年7月14日に brownout、2026年9月15日に GitHub とパートナー CDN で SHA-1 in HTTPS / TLS を完全に無効化するとされています。なお、brownout は CDN には影響しないと説明されています。(The GitHub Blog)

日付内容実務上の意味
2026年4月20日GitHub が SHA-1 in HTTPS の廃止方針を発表影響調査を開始するタイミング
2026年7月14日 00:00〜18:00 UTCbrownout を実施影響のあるクライアントでは一時的に接続失敗が起きる可能性
2026年9月15日GitHub とパートナー CDN で完全無効化未対応環境では恒久的に HTTPS 接続できなくなる可能性

日本時間で見る場合、2026年7月14日の brownout は UTC 基準です。運用チームは、自社のタイムゾーンに換算したうえで、該当時間帯の CI/CD、リリース作業、バッチ処理、依存関係取得に失敗が出ないかを確認しておくと安全です。

最初に確認すべき変更点

Platform engineers、security teams、DevOps、enterprise GitHub admins が最初に見るべきポイントは、細かい暗号仕様よりも「どの経路で GitHub に HTTPS 接続しているか」です。

GitHub.com と Enterprise Cloud が対象

今回の対象は、github.com、GitHub Enterprise Cloud、GitHub Enterprise Cloud with Data Residency です。GitHub Enterprise Server は対象外とされています。(The GitHub Blog)

そのため、まずは次のように切り分けます。

利用形態今回の確認優先度理由
GitHub.com を直接利用高公式発表の対象
GitHub Enterprise Cloud高対象に含まれる
GitHub Enterprise Cloud with Data Residency高対象に含まれる
GitHub Enterprise Server のみ低今回の変更対象外
Enterprise Server と GitHub.com の併用中〜高GitHub.com 側の連携や Actions で影響する可能性

Enterprise Server だけを使っている組織でも、外部連携、GitHub Marketplace、GitHub.com 上の公開リポジトリ取得、Actions の依存関係取得などで github.com に接続している場合があります。「自社は Enterprise Server だから関係ない」と即断せず、実際の通信経路を確認してください。

Git のオブジェクト ID の SHA-1 とは別問題

現場で混乱しやすいのが、「SHA-1 廃止」という表現です。

今回の変更は、Git のコミット ID やツリー ID として使われる SHA-1 の話ではありません。対象は HTTPS/TLS 接続の暗号アルゴリズム側です。

つまり、次のような作業が直接必要になるわけではありません。

  • 既存リポジトリのコミットハッシュを変更する
  • Git の履歴を書き換える
  • SHA-256 リポジトリへ即時移行する
  • GitHub 上のリポジトリ名や設定を変更する

実務で必要なのは、GitHub に HTTPS 接続するクライアント側が、SHA-1 に依存しない現代的な TLS 構成に対応しているかを確認することです。

影響を受けやすい環境

最新の OS、ブラウザ、Git、TLS ライブラリを使っている一般的な開発端末では、影響は限定的と考えられます。問題になりやすいのは、更新が止まりがちな周辺環境です。

古い CI/CD ランナー

最優先で確認したいのは CI/CD 環境です。

たとえば、次のような場所で GitHub への HTTPS 接続が発生します。

  • actions/checkout 以外の独自スクリプトによる git clone
  • Jenkins、GitLab CI、CircleCI、Buildkite などからの GitHub リポジトリ取得
  • self-hosted runner での private repository 取得
  • Terraform、Ansible、Helm、npm、pip、Go modules などの処理中に GitHub から依存関係を取得する処理
  • Docker build 中の git clone https://github.com/...

特に、古いベースイメージを使ったコンテナや、長く更新されていない self-hosted runner は要注意です。ホスト OS は新しくても、ジョブ内で使うコンテナイメージが古い場合、そこで使われる Git や OpenSSL が接続失敗の原因になることがあります。

社内ツールや Bot

GitHub API を使う社内ツールも確認対象です。

たとえば、次のようなツールです。

  • Pull Request のレビュー状況を集計する Bot
  • リポジトリ一覧や Issue を取得する社内ダッシュボード
  • GitHub Apps や OAuth Apps
  • Dependabot や監査ログを処理する周辺ツール
  • Webhook 受信後に GitHub API を呼び返す自動化処理

GitHub は、API 接続ではモダンなフレームワークやライブラリを使うよう案内しています。(The GitHub Blog)
実務では、利用言語だけでなく、実際に TLS を処理しているランタイムやライブラリまで見る必要があります。

言語・環境確認ポイント
Python実行環境の Python バージョン、OpenSSL、requests などの依存関係
Node.jsNode.js のバージョン、実行コンテナの OS、HTTPS クライアント
JavaJDK / JRE のバージョン、TrustStore、社内プロキシ設定
GoGo ランタイムのバージョン、静的リンクされた古いバイナリ
.NET.NET ランタイム、Windows Server の TLS 設定
Ruby / PHP実行環境、OpenSSL、HTTP クライアントライブラリ

「コードは変えていないのに突然 API が失敗する」という形で表面化しやすいため、重要な自動化処理は brownout 前に検証しておくべきです。

社内プロキシや SSL インスペクション

見落としがちなのが、開発端末やサーバーそのものではなく、途中にあるネットワーク機器です。

たとえば、次のような構成です。

  • 企業プロキシ経由で GitHub に接続している
  • SSL インスペクションを行うセキュリティ製品を利用している
  • 開発者端末と GitHub の間に DLP、CASB、SWG などの製品がある
  • データセンターや VDI 環境からのみ GitHub に出る

この場合、クライアント側の Git やブラウザが新しくても、途中のプロキシが古い TLS 構成に依存していると問題が出る可能性があります。brownout 中に一部拠点だけ失敗する、VDI だけ失敗する、特定のネットワークだけ GitHub API が通らない、といった症状が出る場合はネットワーク経路も確認してください。

初動チェックリスト

まずは「影響があるかもしれない接続」を洗い出し、優先順位を付けて確認します。すべてを一度に調べるより、業務停止リスクの高い順に見るほうが効率的です。

優先度確認項目具体的な確認方法
高CI/CD が GitHub に接続しているかジョブログで github.com、api.github.com、git clone を検索
高self-hosted runner が古くないかOS、Git、OpenSSL、ベースイメージを確認
高重要な社内 Bot が GitHub API を使っているかAPI トークン利用箇所、GitHub Apps、定期バッチを棚卸し
中開発者端末の Git が古くないか端末管理ツールや MDM で Git / OS のバージョンを確認
中社内プロキシが介在しているかネットワークチームに GitHub 宛て HTTPS の経路を確認
中ブラウザで GitHub を開く端末が古くないかVDI、共有端末、閉域端末を確認
低GitHub Enterprise Server のみの利用箇所github.com への外向き通信がないかだけ確認

確認対象を洗い出すときは、GitHub の URL だけでなく、以下のホスト名や用途も含めると漏れにくくなります。

  • github.com
  • api.github.com
  • GitHub からのリポジトリ clone / fetch / push
  • GitHub Releases からのバイナリ取得
  • GitHub-hosted コンテンツや CDN 経由の取得
  • GitHub Apps / OAuth Apps の API 通信

具体的な確認手順

ブラウザは github.dev で簡易確認する

GitHub は、ブラウザ確認の方法として https://github.dev へのアクセスを案内しています。GitHub によると、github.dev では SHA-1 がすでに無効化されており、接続問題なく読み込めれば、そのブラウザは現代的な HTTPS 構成に対応していると判断できます。(The GitHub Blog)

確認手順はシンプルです。

| 手順 | 作業 |
| -: | ————————————- |
| 1 | 対象端末の通常ブラウザで https://github.dev を開く |
| 2 | 接続エラー、証明書エラー、プロキシエラーが出ないか確認する |
| 3 | エラーが出る場合は、ブラウザ、OS、社内プロキシの順に切り分ける |
| 4 | VDI や共有端末など、特殊な端末でも同じ確認を行う |

注意点は、開発者の手元の最新端末だけで確認して終わらせないことです。実際に問題が起きやすいのは、VDI、踏み台、閉域ネットワーク、古い業務端末です。

Git クライアントは HTTPS 経由の操作を確認する

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

まずは対象環境で次を確認します。

git --version

Linux では、可能であれば OpenSSL のバージョンも確認します。

openssl version

GitHub との疎通確認には、実際の運用に近い形で HTTPS 経由の操作を行います。

git ls-remote https://github.com/github/gitignore.git

この確認で見るべきなのは、単にコマンドが成功するかだけではありません。どの環境で実行したかが重要です。

  • 開発者端末
  • CI ランナー
  • self-hosted runner
  • Docker コンテナ内
  • Kubernetes Job 内
  • 踏み台サーバー
  • 社内ネットワーク配下の端末
  • VPN 接続時の端末

同じコマンドでも、ローカル端末では成功し、古いコンテナ内では失敗するケースがあります。CI/CD で使う実行環境ごとに確認してください。

API クライアントはランタイム単位で確認する

GitHub API を利用している場合は、コードリポジトリ内の URL 検索だけでは不十分です。実行環境がどこにあるか、どのランタイムで動いているかまで確認します。

たとえば、次の観点で棚卸しします。

確認項目見るべき内容
API 呼び出し元社内サーバー、クラウド Functions、CI ジョブ、Bot、業務端末
認証方式Personal access token、GitHub App、OAuth App
実行言語Python、Node.js、Java、Go、.NET など
実行基盤VM、コンテナ、Kubernetes、サーバーレス
ネットワーク経路直接接続、プロキシ経由、VPN 経由
エラーハンドリングTLS エラー時にログが残るか、リトライで隠れないか

API クライアントの検証では、単純な疎通だけでなく、実際に使っているエンドポイントに近いリクエストを送ることが重要です。読み取り専用の API 呼び出しで検証し、レスポンスコードと TLS 関連のエラーを記録します。

例として、権限不要のエンドポイントで疎通を見る場合は次のように確認できます。

curl -I https://api.github.com

ただし、curl が成功しても、アプリケーション本体が成功するとは限りません。curl とアプリケーションで使っている TLS ライブラリが異なる場合があるためです。最終的には、本番と同じランタイム・同じコンテナ・同じネットワーク経路で確認してください。

brownout 前にやるべき対応

2026年7月14日の brownout は、影響を検知するための重要な機会です。ただし、本番環境で初めて気づくのでは遅い場合があります。brownout 前に、少なくとも次の準備をしておきましょう。

重要なジョブを一覧化する

まず、GitHub への接続失敗が業務に与える影響を整理します。

業務GitHub 接続失敗時の影響優先度
本番リリースデプロイ停止、緊急修正不可高
CI ビルドPull Request 検証停止高
セキュリティスキャン脆弱性検知の遅延中〜高
社内ダッシュボード情報更新の遅延中
開発者の clone / pull開発効率低下中

リリースや障害対応に直結するジョブは、brownout 前に必ず検証対象へ入れてください。

古い実行環境を更新する

影響が疑われる環境では、次の更新を検討します。

  • OS のパッケージ更新
  • Git クライアントの更新
  • OpenSSL など TLS 関連ライブラリの更新
  • Node.js、Python、Java、.NET などランタイムの更新
  • CI/CD のベースイメージ更新
  • self-hosted runner の更新
  • 社内プロキシや SSL インスペクション製品の設定確認

特にコンテナでは、ubuntu:18.04 や古い Debian / Alpine 系イメージなど、長期間更新されていないベースイメージを使っていないか確認してください。ベースイメージの更新は、TLS だけでなく脆弱性対応の観点でも効果があります。

brownout 中の監視ポイントを決める

brownout 当日は、何を見ればよいかを事前に決めておきます。

監視対象見るべきログ
CI/CDclone、fetch、checkout、dependency install の失敗
API クライアントTLS handshake error、certificate error、connection reset
プロキシGitHub 宛て HTTPS の失敗率、証明書関連エラー
開発者端末GitHub Web、Git 操作の接続エラー
Bot定期実行の失敗、Webhook 後続処理の失敗

エラーが出た場合は、単に「GitHub 障害」と扱わず、対象時間帯が brownout と重なっているかを確認してください。GitHub Status だけを見ても原因が分からない場合があります。

対応時に失敗しやすいポイント

手元の端末だけで確認してしまう

最も多い失敗は、情シスや DevOps 担当者の最新端末で問題がないことを確認し、「全社問題なし」と判断してしまうことです。

実際に問題が出るのは、古い CI ランナー、閉域ネットワーク、VDI、メンテナンスされていない自動化サーバーです。確認対象は「人が使う端末」ではなく、「GitHub に HTTPS 接続するすべての実行環境」と考えてください。

SSH 利用だから関係ないと判断する

Git 操作に SSH を使っているチームでも、GitHub API やブラウザアクセス、GitHub Releases からの取得は HTTPS を使っている可能性があります。

たとえば、次のような処理は SSH とは別に確認が必要です。

  • GitHub API を呼ぶ Bot
  • Release assets のダウンロード
  • GitHub Pages や GitHub-hosted コンテンツへのアクセス
  • curl や wget による GitHub からの取得
  • パッケージマネージャー経由の GitHub 参照

「Git clone は SSH だから大丈夫」ではなく、HTTPS 通信全体を棚卸しすることが重要です。

プロキシの影響を見落とす

企業環境では、GitHub への通信が直接出ていないことがあります。プロキシや SSL インスペクション製品が介在している場合、開発者端末ではなく中間機器が問題の原因になることがあります。

切り分けるときは、次のように比較します。

比較分かること
社内ネットワーク vs 自宅回線社内経路の問題かどうか
VPN 接続あり vs なしVPN 経路の問題かどうか
プロキシあり vs なしプロキシの影響かどうか
ホスト OS vs コンテナ内コンテナの TLS 環境の問題かどうか
ブラウザ vs Git vs アプリどのクライアント層の問題か

この比較を先に用意しておくと、brownout 中に短時間で原因を絞り込めます。

企業管理者向けの実務対応プラン

Enterprise GitHub admins や security teams は、単発の確認ではなく、変更管理として扱うのがおすすめです。

影響調査の進め方

まず、GitHub への接続を次の4分類で棚卸しします。

分類代表例担当チーム
人の利用ブラウザ、Git クライアント、GitHub Desktop情シス、開発部門
CI/CDGitHub Actions、Jenkins、self-hosted runnerDevOps、SRE
API 連携Bot、社内ツール、GitHub AppsPlatform team、各開発チーム
ネットワークProxy、CASB、SWG、SSL inspectionSecurity team、Network team

この分類ごとに、対象システム、実行環境、責任者、確認状況、更新要否を記録します。スプレッドシートでも構いませんが、変更管理チケットとして残すと監査や引き継ぎが楽になります。

対応ステータスの例

ステータス意味
未確認まだ影響調査していない
対象外GitHub への HTTPS 接続がない、または Enterprise Server のみ
確認済みgithub.dev や API 疎通確認で問題なし
要更新Git、OS、ランタイム、プロキシなどの更新が必要
更新完了更新後に再検証済み
brownout 監視対象事前確認済みだが brownout 中も重点監視する

重要なのは、「確認した」という事実だけでなく、どの環境で、どの方法で、いつ確認したかを残すことです。後から問題が起きた場合の切り分けが速くなります。

現場向けのすぐ使える確認観点

開発チームや Platform team に共有するなら、次のような短いチェックリストが実用的です。

GitHub SHA-1 in HTTPS 廃止対応チェック

□ github.com / api.github.com へ HTTPS 接続する処理を洗い出した
□ CI/CD の Git clone / fetch / checkout を確認した
□ self-hosted runner の OS、Git、OpenSSL を確認した
□ 古い Docker ベースイメージを使っていないか確認した
□ GitHub API を使う Bot / 社内ツールを確認した
□ 社内プロキシや SSL インスペクションの影響を確認した
□ https://github.dev を対象端末・対象ネットワークで開けることを確認した
□ 2026年7月14日の brownout 中に監視するジョブを決めた
□ 2026年9月15日の完全無効化前に更新作業を完了する計画を作った

このチェックリストを各チームに配布し、影響がある場合だけ Platform team に報告してもらう形にすると、全社調査を進めやすくなります。

今回の変更をセキュリティ改善の機会にする

SHA-1 in HTTPS の廃止は、単なる GitHub 側の仕様変更ではなく、自社の開発基盤を見直す良い機会です。

古い TLS ライブラリや古い Git クライアントが残っている環境は、今回の変更に限らず、将来の証明書更新、暗号スイート変更、API セキュリティ強化でも問題を起こしやすくなります。

特に次のような環境は、今回を機に標準化しておくと運用負荷を減らせます。

  • CI ランナーのベースイメージを定期更新する
  • self-hosted runner の棚卸しルールを作る
  • Git / OpenSSL / ランタイムの最低バージョン基準を決める
  • GitHub API を使う社内ツールを一覧化する
  • 社内プロキシ経由の開発者通信を監視できるようにする

セキュリティチームにとっては、「GitHub への接続が失敗しないか」だけでなく、「古い暗号アルゴリズムに依存した経路が残っていないか」を可視化する機会でもあります。

まず取るべきアクション

今回の GitHub starts sunsetting SHA-1 for HTTPS traffic は、GitHub platform security and HTTPS connectivity を利用する組織にとって、早めに確認すれば大きな混乱を避けられる変更です。

最初に行うべきことは、次の3つです。

  1. GitHub へ HTTPS 接続している環境を洗い出す
  2. ブラウザ、Git クライアント、API クライアント、CI/CD、プロキシを優先順位付きで確認する
  3. 2026年7月14日の brownout 前に検証し、2026年9月15日の完全無効化前に更新を終える

特に CI/CD、self-hosted runner、社内 Bot、プロキシは影響が見えにくく、失敗すると開発やリリースに直結します。手元の端末だけで判断せず、実際に GitHub と通信している実行環境ごとに確認してください。

この記事を書いた人

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

コメント

コメントする

目次