О закрытых ключах для GitHub Apps
После создания GitHub Appнеобходимо создать закрытый ключ, чтобы сделать запросы к API GitHub в качестве самого приложения. Например, для запроса маркера доступа к установке требуется закрытый ключ для подписи веб-маркера 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.