Skip to main content

Управление приватными ключами для приложений GitHub

Вы можете управлять приватными ключами для аутентификации с помощью GitHub Appвашего .

О частных ключах для GitHub Apps

После создания GitHub App, вам нужно будет сгенерировать приватный ключ, чтобы делать запросы к GitHub API как к самому приложению. Например, для запроса маркера доступа к установке требуется закрытый ключ для подписи веб-маркера JSON (JWT). Дополнительные сведения см. в разделе Генерация веб-токена JSON (JWT) для приложения GitHub

Вы можете создать до 25 приватных ключей для приложения. Чтобы сменить ключи без простоя, следует использовать несколько ключей в случае компрометации ключа. Если в вашем приложении 25 и более ключей, нужно удалить часть ключей, прежде чем создавать новые.

Закрытые ключи не истекают и вместо этого необходимо отменить вручную. Дополнительные сведения о том, как отменить или удалить закрытый ключ, см. в разделе "Удаление закрытых ключей".

Вы должны хранить приватные ключи для безопасности GitHub Apps . Дополнительные сведения см. в разделе "Хранение закрытых ключей".

Для проверки соответствия закрытого ключа открытому изучите раздел Проверка закрытого ключа.

Создание закрытых ключей

Чтобы создать закрытый ключ, выполните следующие действия.

  1. В правом верхнем углу любой страницы на GitHubщелкните рисунок профиля.

  2. Перейдите к настройкам учетной записи.

    • Для приложения, принадлежащих личная учетная запись, нажмите кнопку "Параметры".
    • Для приложения, принадлежащих организации:
      1. Щелкните Your organizations (Ваши организации).
      2. Справа от организации нажмите кнопку "Параметры".
    • Для приложения, принадлежающего предприятия:
      1. Если вы используете Enterprise Managed Users, щелкните "Ваше предприятие ", чтобы перейти непосредственно к параметрам учетной записи предприятия.
      2. Если вы используете личная учетная запись, щелкните "Ваши предприятия", а затем справа от предприятия нажмите кнопку "Параметры".
  3. Перейдите к параметрам GitHub App .

    • Для приложения, принадлежащих личная учетная запись или организации:
      1. На левой боковой панели щелкните Параметры разработчика, а затем выберите GitHub Apps.
    • Для приложения, принадлежаемого предприятием:
      1. На левой боковой панели в разделе "Параметры", щелкните **GitHub Apps.
  4. Рядом с тем, GitHub App для которого вы хотите сгенерировать приватный ключ, нажмите Редактировать.

  5. В разделе "Закрытые ключи" нажмите кнопку "Создать закрытый ключ".

  6. Вы увидите скачанный на компьютер закрытый ключ в формате PEM. Обязательно сохраняйте этот файл, потому что GitHub хранит только публичную часть ключа. Дополнительные сведения о безопасном хранении ключа см. в разделе "Хранение закрытых ключей".

Примечание.

Если вы используете библиотеку, требующую определенного формата файла, скачанный файл PEM будет иметь PKCS#1 RSAPrivateKey формат.

Проверка закрытых ключей

GitHub генерирует отпечаток пальца для каждой пары приватного и публичного ключей с помощью хеш-функции SHA-256. Вы можете проверить, совпадает ли ваш приватный ключ с публичным ключом, сохранённым GitHub , сгенерировав отпечаток этого приватного ключа и сравнив его с отпечатком, показанным на GitHub.

Для проверки закрытого ключа выполните следующее.

  1. Найдите отпечаток для пары приватного и публичного ключей, которые хотите проверить, в разделе «Приватные ключи» на странице настроек для вашего GitHub App. Дополнительные сведения см. в разделе "Создание закрытых ключей".

    Снимок экрана: закрытый ключ на странице параметров GitHub App. Отпечатки пальцев, часть закрытого ключа после двоеточия, очертены темно-оранжевым цветом.

  2. Создайте отпечаток закрытого ключа (PEM) локально с помощью следующей команды:

    openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
    
  3. Сравните результаты локально сгенерированного отпечатка пальца с тем, что вы видите в GitHub.

Удаление закрытых ключей

Вы можете удалить потерянный или скомпрометированный закрытый ключ, удалив его, но перед удалением существующего ключа необходимо повторно создать новый ключ.

  1. В правом верхнем углу любой страницы на GitHubщелкните рисунок профиля.
  2. Перейдите к настройкам учетной записи.
    • Для приложения, принадлежащих личная учетная запись, нажмите кнопку "Параметры".
    • Для приложения, принадлежащих организации:
      1. Щелкните Your organizations (Ваши организации).
      2. Справа от организации нажмите кнопку "Параметры".
    • Для приложения, принадлежающего предприятия:
      1. Если вы используете Enterprise Managed Users, щелкните "Ваше предприятие ", чтобы перейти непосредственно к параметрам учетной записи предприятия.
      2. Если вы используете личная учетная запись, щелкните "Ваши предприятия", а затем справа от предприятия нажмите кнопку "Параметры".
  3. На левой боковой панели щелкните Параметры разработчика.
  4. На левой боковой панели щелкните GitHub Apps.
  5. Рядом с тем, GitHub App для кого вы хотите удалить приватный ключ, нажмите «Редактировать».
  6. В разделе "Закрытые ключи" справа от закрытого ключа, который требуется удалить, нажмите кнопку "Удалить".
  7. При появлении запроса подтвердите удаление закрытого ключа, нажав кнопку "Удалить". Если у вас GitHub App только один ключ, вам нужно сгенерировать новый ключ перед удалением старого. Дополнительные сведения см. в разделе "Создание закрытых ключей".

Хранение закрытых ключей

Приватный ключ — это самый ценный секрет для GitHub App. Рассмотрите возможность хранения ключа в хранилище ключей, например, Azure Key Vault, и сделать его только с знаками. Это помогает гарантировать, что закрытый ключ не будет потерян. После отправки закрытого ключа в хранилище ключей он никогда не может быть прочитан. Его можно использовать только для подписывания вещей, а доступ к закрытому ключу определяется правилами инфраструктуры.

Кроме того, ключ можно сохранить в качестве переменной среды. Это не так сильно, как хранение ключа в хранилище ключей. Если злоумышленник получает доступ к среде, он может прочитать приватный ключ и получить устойчивую аутентификацию как GitHub App.

Не следует жестко кодировать закрытый ключ в приложении, даже если код хранится в частном репозитории.

Дополнительные сведения см. в разделе Лучшие практики создания приложения на GitHub.