2015-11-13 3 views
1

У меня возникают трудности с настройкой задачи запуска в роли Azure. Конечная цель - отключить шифр RC4 вместе с другими конфигурациями SSL. В моем (VS2012Express) проект (решение частично достигается после очередного ответа здесь в SO, который привел меня к https://gist.github.com/sidshetye/29d6d48dfa0c2f5488a4) Я создал STARTUP.CMD файл, как это:Запуск Запуск не запущен на роль службы Azure Cloud Service

# Execute powershell command to disable RC4 and imporve SSL security settings 
ECHO Batch started >> "StartupLog.txt" 2>&1 
PowerShell -ExecutionPolicy Unrestricted .\HardenSSL.ps1 >> log- HardenSSL.txt 2>&1 
EXIT /B 0 

HardenSSL.ps1 является сценарием PowerShell из предыдущей ссылки , Оба сценария .cmd и .ps1 помещаются в корневую директорию приложения, помеченную как «Содержимое» со свойствами, установленными в «CopyLocal = Always».

В моем определении сервиса, я ставлю это:

<Startup> 
    <Task commandLine="Startup.cmd" executionContext="elevated" taskType="background"></Task> 
</Startup> 

Теперь, когда я развернуть приложение в Azure, "ничего" не происходит. Я настроил экземпляр роли, чтобы разрешить удаленный рабочий стол, подключенный к машине. Я проверил опубликованные сценарии и не было файлов журналов, RC4 все еще включен. Я попытался вручную запустить .cmd, и машина завершила выполнение сценариев, отключила RC4 и перезапустила. Таким образом, сценарии на самом деле «правильные».

Проблема в том, что сценарии не запускаются при запуске. Возможно, я ошибаюсь, но я не вижу ничего связанного с Windows событиями. Фактически, сервер теперь сохраняет все конфигурации, но я должен быть уверен, что сценарии будут выполнены, если мне придется публиковать новые службы/облачные сервисы.

Я также попытался: 1. Поместите скрипты в каталог детской 2. создать другие 2 «проще» .cmd, что просто создать файл журнала с «сценарий начала», чтобы исключить проблемы, связанные с CMD-призвании сценарий PowerShell. Ни один из этих сценариев не был выполнен.

Надеюсь, что я был достаточно ясен, любая помощь будет принята с благодарностью.

Спасибо заранее,

Альберто

UPDATE 1

Читая различные дискуссии, я пропустил одну очень важную вещь: файлы сценариев фактически опубликованы в 2 разных местах, один, находясь внутри/bin.

Ex: Я поместил свои сценарии в папку/StartupScripts в моем проекте, и когда я подключаюсь через Remote Desktop к серверу Azure, я нахожу скрипты как в «approot/StartupScripts», так и в «approot/bin/StartupScripts», ,

Сценарии, которые на самом деле выполняются, это те, которые находятся внутри папки «bin». реальная проблема заключается в том, что у меня есть, вероятно, проблема пути внутри .cmd, так как теперь я нашел журналы выполнения с ошибкой.

Теперь я попытаюсь изменить его и обновить вопрос здесь на SO.

+0

Все ваши пути верны? Отображается ли файл в вашей папке соответствующего пользователя на сервере и вы пытались выполнить его из пакетного сценария следующим образом: '% RoleRoot% \ approot \ HardenSSL.ps1' –

+0

Обновленный вопрос с тем, что я обнаружил, похоже, что это проблема с пути действительно. О тестировании. – Alberto

ответ

0

Хорошо.

В конце концов, это действительно проблема с путём в файле Startup.cmd:. \ HardenSSL.ps1 не удалось найти, если задача StartUp указала на подпапку.

Решение должно было размещать файлы Startup.cmd и HardenSSL.ps1 в корне приложения, удалять часть «. \» При вызове сценария PowerShell, и все работает хорошо.

Во всяком случае, я хотел бы предложить кого выбрать это другое решение, которое я нашел в стеке Exchage: https://security.stackexchange.com/a/79957

Это ссылки на пакет NuGet, который делает то же самое, что и сценарий, я нашел ссылку на GitHub в оригинальном посте, просто «лучше»; главным образом:

  • Лучше конфигурация шифров с поддержкой ForwardSecrecy для всех референтных браузеров на SSLLabs
  • Сохранил поддержку SSL для Internet Explorer 8 на Windows XP (к сожалению, до сих пор является необходимостью для нас)

Alberto.

Смежные вопросы