Сертификат управления для автоматизации работы
У нас возникли некоторые проблемы с сертификатами управления Azure.
Наша учетная запись Azure содержит 3 подписки. Мы запускаем экземпляр Azure TaskScheduler под одним из них
Нам нужно установить сертификат для этой подписки, чтобы иметь возможность войти в нее из нашего приложения ASP.NET. Мы создали новый самозаверяющий сертификат, загрузили его в настройках Azure по указанной выше подписке и поместили версию.cer (без личного ключа) в кодировке BASE64 в файл конфигурации нашего приложения.
Когда мы используем его для создания нового сертификата с конструктором thw X509Certificate2, он успешно выполняется. Но если мы попытаемся использовать этот объект сертификата в учетных данных для SchedulerClient, произойдет сбой со следующим сообщением об ошибке:
ForbiddenError: Серверу не удалось аутентифицировать запрос. Убедитесь, что сертификат действителен и связан с этой подпиской.
Важно знать, что этот код ранее работал с другим сертификатом, но нам нужно было изменить сертификат, чтобы исправить другую проблему. Кажется, что новый сертификат не распознается как связанный с подпиской, даже если он отображается в списке сертификатов управления этой подписки на портале Azure.
Этот URL: https://manage.windowsazure.com/publishsettings/index?client=vs&schemaversion=2.0 вернет только один сертификат на подписку, но в руководстве MSDN сказано, что на подписку допускается до 100 сертификатов управления.
Что нам теперь делать? Нужно ли делать что-то особенное в администрации Azure, чтобы "назначить" новый сертификат планировщику или подписке? Как мы можем получить подписки Azure для распознавания нового сертификата и проверки его подлинности?
1 ответ
Кажется, что вы не можете использовать сертификат управления для успешного управления службами Azure после загрузки сертификата управления в настройках портала Azure. Эта проблема очень похожа на другой поток SO с бесплатной пробной учетной записью Java Azure, которая не может пройти проверку подлинности через Java SDK.
Я предлагаю попытаться обратиться к статье, чтобы заново сгенерировать новый самозаверяющий сертификат и загрузить его в настройках классического портала Azure. Убедитесь, что загруженный сертификат управления существует в MANAGEMENT CERTIFICATES
Вкладка ваших настроек, как у меня, как показано ниже.
Затем вы можете обратиться к ссылке, чтобы добавить сертификат в запрос http или httpclient (см. Код ниже) для конструктора. SchedulerClient(HttpClient)
,
X509Certificate2 certificate = GetStoreCertificate("<thumbprint>");
var clientHandler = new WebRequestHandler()
clientHandler.ClientCertificates.Add(certificate);
var client = new HttpClient(clientHandler)