Внешний вид веб-интерфейса GitHub 2 ноября 2020 года (примерно с 2 до 3 часов ночи по московскому времени). Нормально отображался текст, ссылки и эскизы.

По информации издания Bleeping Computer, сегодня ночью в течение часа веб-интерфейс сервиса GitHub не работал как положено. В нем не было изображений, также пользователи фиксировали проблемы с работой JavaScript-сценариев.

Проблема оказалось в том, что специалисты GitHub забыли вовремя продлить SSL-сертификат для github.githubassets.com (сервер CDN GitHub).

Сеть доставки контента (CDN) состоит из распределенных наборов серверов, отдельных от сервера основного веб-сайта, которые стратегически размещены в разных географических точках. Это сделано для оптимизации производительности, увеличения скорости и доставки контента, включая видео, изображения и другие веб-ресурсы.

Например, на основном сервере github.com размещается текст, а изображения, таблицы стилей и файлы JavaScript могут поступать с полностью отдельного сервера CDN, в зависимости от местоположения пользователей и других факторов.


Причем SSL-сертификат для основного сайта github.com был действующим. Однако загрузка дополнительных ресурсов с githubassets.com с истекшим SSL-сертификатом, включая элементы веб-интерфейса, блокировалась, так как срабатывала защиты от обработки смешанного контента.

Команда GitHub после возникновения проблемы смогла оперативно развернуть новый сертификат, он действует до ноября 2021 года. Фактическое время простоя основного домена с нерабочим веб-интерфейсом составило около 30 минут.

Старый и новый SSL-сертификат githubassets.com.

Bleeping Computer пояснило, что продление срока действия истекшего SSL-сертификата является простой задачей. Многие системы начинают нештатно работать после истечения срока действия, это приводит к сбоям и простою, которые можно было бы полностью предотвратить с помощью надлежащего планирования в компании.

Некоторые разработчики в Twitter написали, что в таком случае можно использовать консольную утилиту GitHub CLI. Сейчас с помощью встроенной в инструмент утилиты «gh» можно создавать и разбирать пул-реквесты, включая работу в команде, заводить и просматривать сообщения об ошибках (issue), клонировать репозитории, просматривать различия в коде, выполнять рецензирование изменений и управлять формированием релизов на GitHub. Также в GitHub CLI можно создавать скрипты, использующие API GitHub.

Однако, полностью GitHub CLI не заменяет текущий веб-интерфейс GitHub. В некоторых случая при работе с проектами и репозиториями, например, если истекают сроки GPG-ключа для самоподписи коммитов или RSA для аутентификации, нужен веб-интерфейс сервиса для исправления ситуации.

См. также: