Я пытаюсь заставить васаби (блок автомасштабирования корпоративной библиотеки) работать с рабочей ролью Azure. Рабочая роль васаби (Extra Small, полное доверие) масштабирует другую рабочую роль в рамках той же службы. Он отлично работает из локального консольного приложения с идентичной конфигурацией - из-за ошибок сертификат не попадает в виртуальную машину. Я использую последние версии пакетов SDK для Azure, блок автомасштабирования корпоративной библиотеки и портал Azure.
Вот шаги, которые я предпринял на основе этих документов: http://msdn.microsoft.com/en-us/library/hh680937(v=pandp.50).aspx
- Я создал сертификат управления в соответствии с указаниями здесь: http://msdn.microsoft.com/en-us/library/gg432987.aspx.
- Я экспортировал .pfx с закрытым ключом и дал ему пароль.
- Я загрузил .cer в раздел «Настройки» -> «Сертификаты управления» на портале.
- Я загрузил .pfx с правильным паролем в облачные службы -> (Моя служба) -> Сертификаты, отметив указанный отпечаток.
- Я создал несколько тривиальных правил, которые увеличивают масштаб моего приложения на несколько экземпляров, и правильно настроил служебную информацию для использования моего нового сертификата. Файлы XML находятся в хранилище BLOB-объектов. Именно эта конфигурация отлично работает на моем локальном компьютере в консольном приложении.
- Я добавил запись в конфигурацию роли Васаби, используя правильное имя сертификата и отпечаток. Я настроил его на использование CurrentUser \ My store. Я подтвердил, что файлы .csdef и .cscfg обновлены правильно.
- Я развертываю службу для промежуточной обработки в Azure с помощью инструмента публикации. Параметр конфигурации сертификата правильно отображается в параметре конфигурации для роли.
- Приложение не масштабируется. Я проверяю записи трассировки, и возникает исключение при попытке получить доступ к API управления. Он пытается получить доступ к правильной подписке и пытается найти правильный отпечаток сертификата в нужном хранилище, поэтому моя конфигурация загружается правильно. Он утверждает, что не может найти сертификат с этим отпечатком в этом магазине.
Я попробовал LocalMachine \ My store (настроенный в настройках сертификата роли и в XML хранилища служебной информации), и у меня возникло другое исключение - ошибка, указанная в Azure WASABi SecurityNegotiationException. Это исправление в конечном итоге должно было перейти к CurrentUser, так что здесь мне это не помогает.
Я пробовал множество других комбинаций CurrentUser \ LocalMachine и разных хранилищ, и все местоположения CurrentUser приводят к тому, что сертификат не найден, а все хранилища LocalMachine приводят к другому исключению.
Я трижды проверил отпечатки пальцев в настройках ролей, на портале (страница сертификата) и в файле служебной информации, и все они совпадают.
Затем я включил удаленный рабочий стол и вошел в экземпляр роли Wasabi и использовал MMC для просмотра конфигурации сертификата как для локального компьютера, так и для текущего пользователя. Когда я выбрал хранилище LocalMachine в настройках сертификата роли, сертификат действительно появился в хранилище LocalMachine, что говорит мне, что сертификат правильно установлен в службе и отпечатки пальцев совпадают. Когда выбрано хранилище CurrentUser, сертификат нигде не отображается. Это может быть связано с тем, что пользователь, который используется RDP, не является тем же пользователем, что и служба, но он соответствует ошибке.
Итак, вкратце:
- Сертификат был правильно настроен и установлен на портале (сертификаты управления для подписки и сертификаты услуг).
- По-видимому, вы должны использовать местоположение CurrentUser, а не местоположение LocalMachine, для роли Wasabi (согласно связанному вопросу SO).
- Когда я пытаюсь установить в CurrentUser, сертификат не помещается в виртуальную машину, по крайней мере, нигде, где роль может его найти.
Любые идеи?
Спасибо!