О частных ключах для GitHub Apps
После создания GitHub App, вам нужно будет сгенерировать приватный ключ, чтобы делать запросы к GitHub API как к самому приложению. Например, для запроса маркера доступа к установке требуется закрытый ключ для подписи веб-маркера JSON (JWT). Дополнительные сведения см. в разделе Генерация веб-токена JSON (JWT) для приложения GitHub
Вы можете создать до 25 приватных ключей для приложения. Чтобы сменить ключи без простоя, следует использовать несколько ключей в случае компрометации ключа. Если в вашем приложении 25 и более ключей, нужно удалить часть ключей, прежде чем создавать новые.
Закрытые ключи не истекают и вместо этого необходимо отменить вручную. Дополнительные сведения о том, как отменить или удалить закрытый ключ, см. в разделе "Удаление закрытых ключей".
Вы должны хранить приватные ключи для безопасности GitHub Apps . Дополнительные сведения см. в разделе "Хранение закрытых ключей".
Для проверки соответствия закрытого ключа открытому изучите раздел Проверка закрытого ключа.
Создание закрытых ключей
Чтобы создать закрытый ключ, выполните следующие действия.
-
В правом верхнем углу любой страницы на GitHubщелкните рисунок профиля.
-
Перейдите к настройкам учетной записи.
- Для приложения, принадлежащих личная учетная запись, нажмите кнопку "Параметры".
- Для приложения, принадлежащих организации:
- Щелкните Your organizations (Ваши организации).
- Справа от организации нажмите кнопку "Параметры".
- Для приложения, принадлежающего предприятия:
- Если вы используете Enterprise Managed Users, щелкните "Ваше предприятие ", чтобы перейти непосредственно к параметрам учетной записи предприятия.
- Если вы используете личная учетная запись, щелкните "Ваши предприятия", а затем справа от предприятия нажмите кнопку "Параметры".
-
Перейдите к параметрам GitHub App .
- Для приложения, принадлежащих личная учетная запись или организации:
- На левой боковой панели щелкните Параметры разработчика, а затем выберите GitHub Apps.
- Для приложения, принадлежаемого предприятием:
- На левой боковой панели в разделе "Параметры", щелкните **GitHub Apps.
- Для приложения, принадлежащих личная учетная запись или организации:
-
Рядом с тем, GitHub App для которого вы хотите сгенерировать приватный ключ, нажмите Редактировать.
-
В разделе "Закрытые ключи" нажмите кнопку "Создать закрытый ключ".
-
Вы увидите скачанный на компьютер закрытый ключ в формате PEM. Обязательно сохраняйте этот файл, потому что GitHub хранит только публичную часть ключа. Дополнительные сведения о безопасном хранении ключа см. в разделе "Хранение закрытых ключей".
Примечание.
Если вы используете библиотеку, требующую определенного формата файла, скачанный файл PEM будет иметь PKCS#1 RSAPrivateKey формат.
Проверка закрытых ключей
GitHub генерирует отпечаток пальца для каждой пары приватного и публичного ключей с помощью хеш-функции SHA-256. Вы можете проверить, совпадает ли ваш приватный ключ с публичным ключом, сохранённым GitHub , сгенерировав отпечаток этого приватного ключа и сравнив его с отпечатком, показанным на GitHub.
Для проверки закрытого ключа выполните следующее.
-
Найдите отпечаток для пары приватного и публичного ключей, которые хотите проверить, в разделе «Приватные ключи» на странице настроек для вашего GitHub App. Дополнительные сведения см. в разделе "Создание закрытых ключей".

-
Создайте отпечаток закрытого ключа (PEM) локально с помощью следующей команды:
openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64 -
Сравните результаты локально сгенерированного отпечатка пальца с тем, что вы видите в GitHub.
Удаление закрытых ключей
Вы можете удалить потерянный или скомпрометированный закрытый ключ, удалив его, но перед удалением существующего ключа необходимо повторно создать новый ключ.
- В правом верхнем углу любой страницы на GitHubщелкните рисунок профиля.
- Перейдите к настройкам учетной записи.
- Для приложения, принадлежащих личная учетная запись, нажмите кнопку "Параметры".
- Для приложения, принадлежащих организации:
- Щелкните Your organizations (Ваши организации).
- Справа от организации нажмите кнопку "Параметры".
- Для приложения, принадлежающего предприятия:
- Если вы используете Enterprise Managed Users, щелкните "Ваше предприятие ", чтобы перейти непосредственно к параметрам учетной записи предприятия.
- Если вы используете личная учетная запись, щелкните "Ваши предприятия", а затем справа от предприятия нажмите кнопку "Параметры".
- На левой боковой панели щелкните Параметры разработчика.
- На левой боковой панели щелкните GitHub Apps.
- Рядом с тем, GitHub App для кого вы хотите удалить приватный ключ, нажмите «Редактировать».
- В разделе "Закрытые ключи" справа от закрытого ключа, который требуется удалить, нажмите кнопку "Удалить".
- При появлении запроса подтвердите удаление закрытого ключа, нажав кнопку "Удалить". Если у вас GitHub App только один ключ, вам нужно сгенерировать новый ключ перед удалением старого. Дополнительные сведения см. в разделе "Создание закрытых ключей".
Хранение закрытых ключей
Приватный ключ — это самый ценный секрет для GitHub App. Рассмотрите возможность хранения ключа в хранилище ключей, например, Azure Key Vault, и сделать его только с знаками. Это помогает гарантировать, что закрытый ключ не будет потерян. После отправки закрытого ключа в хранилище ключей он никогда не может быть прочитан. Его можно использовать только для подписывания вещей, а доступ к закрытому ключу определяется правилами инфраструктуры.
Кроме того, ключ можно сохранить в качестве переменной среды. Это не так сильно, как хранение ключа в хранилище ключей. Если злоумышленник получает доступ к среде, он может прочитать приватный ключ и получить устойчивую аутентификацию как GitHub App.
Не следует жестко кодировать закрытый ключ в приложении, даже если код хранится в частном репозитории.
Дополнительные сведения см. в разделе Лучшие практики создания приложения на GitHub.