Протокол шифрования SSL (Secure Socket Layer) — это самый распространенный способ защиты данных в Интернете. В этом примере будет показано, как задать конечную точку HTTPS для веб-роли и загрузить SSL-сертификат для защиты приложения.
Этот процесс включает в себя следующие этапы:
- Этап 1. Получите SSL-сертификат
- Этап 2. Измените определение службы и файлы конфигурации
- Этап 3. Загрузите пакет развертывания и сертификат
- Этап 4. Подключитесь к экземпляру роли по протоколу HTTPS
Этап 1. Получите SSL-сертификат
Чтобы настроить протокол SSL для приложения, сначала необходимо получить SSL-сертификат, подписанный уполномоченным и независимым Центром сертификации. Если у вас еще нет SSL-сертификата, приобретите его у компании, которая их продает.
SSL-сертификат в Windows Azure должен отвечать следующим требованиям:
- Содержать закрытый ключ;
- Поддерживать обмен ключами (файл .pfx);
- Имя получателя в сертификате должно соответствовать домену, из которого осуществляется доступ к службе. Получить SSL-сертификат для домена cloudapp.net невозможно, поэтому имя получателя в сертификате должно совпадать с именем домена, через который вы предоставляете доступ к приложению;
- Сертификат должен использовать шифрование с ключом 2048 бит и выше.
Вы можете создать самоподписанный сертификат для тестирования. Подробнее о том, как создать самоподписанный сертификат в диспетчере IIS, см. в разделе «Как создать сертификат для роли».
Затем необходимо добавить информацию о сертификате в определение службы и ее файлы конфигурации.
Этап 2. Измените определение службы и файлы конфигурации
Необходимо настроить приложение на использование сертификата и добавить конечную точку HTTPS. В результате определение и файлы конфигурации службы потребуется обновить.
Откройте файл определения службы (CSDEF) в среде разработки, добавьте подраздел Certificates в разделе WebRole, а затем укажите следующую информацию о сертификате:
В подразделе Certificates задайте имя сертификата, его местоположение, а также название магазина, в котором он находится. В этом примере сертификат хранится в Центре сертификации, но вы можете выбрать и другое расположение. Дополнительную информацию можно найти в разделе «Как связать сертификат со службой».
Откройте файл определения службы и добавьте элемент InputEndpoint в раздел Endpoints, чтобы включить использование HTTPS:
Откройте файл определения службы и добавьте элемент Binding в раздел Sites. В результате будет создана HTTPS-привязка между конечной точкой и вашим сайтом:
Теперь все необходимые изменения в файл определения службы внесены. Осталось добавить информацию о сертификате в файл конфигурации службы.
Откройте файл конфигурации службы (CSCFG) и добавьте подраздел Certificates в раздел Role, заменив указанный ниже отпечаток на соответствующее значение из своего сертификата:
После обновления файлов определения и конфигурации службы создайте установочный пакет приложения и загрузите его в Windows Azure. Если вы используете инструмент cspack, убедитесь, что флаг /generateConfigurationFile отключен, иначе указанная вами информация о сертификате будет перезаписана.
Этап 3. Загрузите пакет развертывания и сертификат
В установочном пакете используется правильный сертификат, и конечная точка HTTPS добавлена. Теперь можно загрузить пакет и сертификат в Windows Azure через Портал управления.
Войдите в Портал управления Windows Azure и откройте раздел Hosted Services. Щелкните New Hosted Service, введите необходимую информацию о своей службе и нажмите Add Certificate.
В разделе Upload Certificates укажите путь к файлу SSL-сертификата (.pfx) и пароль на сертификат, а затем нажмите OK.
Для создания службы нажмите кнопку OK. Когда отобразится состояние Ready, переходите к следующему шагу.
Этап 4. Подключитесь к экземпляру роли по протоколу HTTPS
После развертывания и запуска приложения в Windows Azure необходимо подключиться к нему по HTTPS.
В Портале управления выберите свое приложение, щелкните правой кнопкой мыши ссылку с именем DNS на панели Properties и выберите Copy.
Вставьте этот адрес в окно веб-браузера, убедитесь, что адрес начинается с https, а не http, и перейдите на страницу.
Браузер отобразит адрес зеленым цветом, уведомляя о том, что используется соединение по HTTPS. Это также означает, что приложение корректно работает с SSL.
Примечание. Если вы используете самоподписанный сертификат, то при подключении к конечной точке HTTPS, связанной с самоподписанным сертификатом, браузер отобразит ошибку. Вы можете решить эту проблему, подписав сертификат в уполномоченном центре, либо просто игнорировать ее.
Дополнительные ресурсы
Автор: XaocCPS