Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

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

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

Сведения о закрытых ключах для GitHub Apps

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

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

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

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

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

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

    • Для приложения GitHub App, принадлежащего учетной записи пользователя, нажмите на фото своего профиля в правом верхнем углу любой страницы и выберите Настройки. Снимок экрана: раскрывающееся меню "ПрофильGitHub в GitHub.com. Параметр с меткой "Параметры" выделен темно-оранжевым цветом.

    • Для приложения GitHub App, принадлежащего организации, нажмите на фото своего профиля в правом верхнем углу любой страницы и выберите Ваши организации. Затем нажмите Настройки справа от организации.

      Снимок экрана: раскрывающееся меню под @octocatизображением профиля. "Ваши организации" выделены темно-оранжевым цветом.

  2. На левой боковой панели щелкните Параметры разработчика.

  3. На левой боковой панели щелкните GitHub Apps. Снимок экрана: страница "Параметры разработчика" в GitHub. Параметр с меткой "Приложения GitHub" выделен темно-оранжевым цветом.

  4. Рядом с GitHub App, для которого требуется создать закрытый ключ, нажмите кнопку Изменить.

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

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

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

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

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

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

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

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

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

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

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

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

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

    • Для приложения GitHub App, принадлежащего учетной записи пользователя, нажмите на фото своего профиля в правом верхнем углу любой страницы и выберите Настройки. Снимок экрана: раскрывающееся меню "ПрофильGitHub в GitHub.com. Параметр с меткой "Параметры" выделен темно-оранжевым цветом.

    • Для приложения GitHub App, принадлежащего организации, нажмите на фото своего профиля в правом верхнем углу любой страницы и выберите Ваши организации. Затем нажмите Настройки справа от организации.

      Снимок экрана: раскрывающееся меню под @octocatизображением профиля. "Ваши организации" выделены темно-оранжевым цветом.

  2. На левой боковой панели щелкните Параметры разработчика.

  3. На левой боковой панели щелкните GitHub Apps. Снимок экрана: страница "Параметры разработчика" в GitHub. Параметр с меткой "Приложения GitHub" выделен темно-оранжевым цветом.

  4. Рядом с GitHub App, для которого требуется удалить закрытый ключ, нажмите кнопку Изменить.

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

  6. При появлении запроса подтвердите удаление закрытого ключа, нажав кнопку Удалить. Если GitHub App имеет только один ключ, необходимо создать новый ключ перед удалением старого ключа. Дополнительные сведения см. в разделе Создание закрытых ключей.

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

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

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

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

Дополнительные сведения см. в разделе Рекомендации по созданию Приложение GitHub.