Настройка Let’s Encrypt в Microsoft Azure

К сожалению, в Chrome 57 сертификаты, выданные STARTSSL, перестали быть валидными. Таким образом, пришло время переходить на Let’s Encrypt , как единственный источник бесплатных сертификатов.

Что необходимо для этого?

  1. Сервисный план обслуживания нашего веб-приложения в Azure должен быть не ниже «Стандартного»
  2. URL-адрес приложения должен содержать ваш домен, а не технический домен Azure .azurewebsites.net
  3. В Powershell на Windows 10 выполняем команду Install-Module AzureRM. Для остальных компьютеров используем инструкции на https://www.powershellgallery.com/ , скачивая последнюю версию Windows Management Framework и модуль для включения функции PackageManagement в PowerShell.
  4. Скачиваем и запускаем скрипт, доступный по адресу https://github.com/Microsoft/vsts-rm-documentation/blob/master/Azure/SPNCreation.ps1 После запуска скрипт спрашивает имя подписки (subscription name)— вводим то, которое у вас используется для публикации сайта. В моем случае это: 
  5. После требуется ввести пароль. Создаем новый, который будет использоваться для будущего приложения. Далее запросится учетная запись и пароль для доступа в Microsoft Azure .
  6. Если всё ввели правильно на предыдущем шаге, то создастся новое веб-приложение и после строк «SPN role assignment completed successfully» будут данные для подключения к этому приложению. Скопируем их куда-нибудь себе. 

  7. Устанавливаем приложение Let’s Encrypt , для этого зайдя в консоль SCM по адресу https://{your site name}.scm.azurewebsites.net/SiteExtensions/#gallery и устанавливаем там приложение «Azure Let’s Encrypt» 32-ух битной разрядности и после этого нажимаем «Restart Site«.
    Название сайта можно увидеть в консоли Azure.

    Поэтому у меня ссылка на консоль SCM выглядит как https://www-onix-me.scm.azurewebsites.net/SiteExtensions/#gallery
  8. Запускаем  «Azure Let’s Encrypt»: далее нам потребуется заполнить несколько полей:
    Tenant — это Tenant ID из 6 шага.
    SubscriptionId — это Subscription Id из 6 шага
    ClientId — это Service Principal Id из 6 шага
    ClientSecret — это тот пароль, который спрашивается в самом начале запуска скрипта из 5 шага.
    ResourceGroupName и ServicePlanResourceGroupName — это Default-Web-NorthEurope , то есть там, где расположены мои ресурсы в Azure, у вас может быть другое наименование. Нажимаем галочку «Update Application Settings» и нажимаем «Next».
  9. Если всё было сделано правильно, то на следующем шаге появится возможность выбрать название хоста и прописать почтовый адрес администратора. Ставим галочку «Use Staging«, чтобы была возможность еще раз запросить сертификат, в случае, если мы с первого раза не справимся. 
  10. Спустя несколько мгновений сертификат будет установлен на хостинге. Остается в админке Azure привязать его к сайту.
  11. Если требуется доступ к сайту только по безопасному протоколу, то не забываем включить «HTTPS Only» в Azure
  12. Остается только в WordPress включить доступ только по HTTPS, для этого заходим по FTP на сайт и меняем файл wp-config.php в корне сайта: вместе «http» прописываем «https»

Подключение Outlook 2007 к Office 365

При подключении Outlook 2007 к Office 365 у меня часто возникают проблемы. К сожалению, данная версия Office уже не поддерживается в облачной инфраструктуре Microsoft, поэтому приходится решать проблемы самому. Одна из таких проблем появляется в момент подключения нового профиля Oulook к Office 365.

Постоянно спрашивается пароль от учетной записи, при условии, что он вводится правильно или же сообщается, что они не правильные.

Для решения этой проблемы необходимо проверить, чтобы были установлены следующие обновления для Office 2007:

  • Пакет обновления 3 (SP3) для выпуска 2007 набора приложений Microsoft Office
  • Обновление для Microsoft Office Outlook 2007 (KB2596598)
    Если они не установлены, то устанавливаете их и перезагружаете компьютер. После этого проблема с Outlook 2007 будет решена.

P.S. К сожалению, компания Microsoft отключает возможность подключения Outlook 2007 к Office 365 c 31 октября 2017 года, поэтому данное решение проблемы только временное. Остается использовать более новые версии почтовой программы или же переходить на протокол IMAP.

Удаленное подключение к IIS в Azure

Если кому-нибудь посчастливится управлять сайтом на IIS в Azure, то скорее всего вам со временем потребуется управлять настройками IIS. Можно это конечно делать через файл web.config в корне сайта, а можно пойти другим путем и настраивать его через графическую оболочку. Что для этого необходимо сделать?
1. Установим консоль IIS через меню “Компоненты Windows”

2.  Заходим на портал Azure, выбираем раздел “Службы приложений”, находим там наше web-приложение и кликаем на нем правой кнопкой мыши и выбираем “Скачать профиль публикации”.

3. Откроем скаченный файл <имя вашего приложения>.PublishSettings блокнотом, нам нужны первые строчки в нем.

4. Запускаем “Диспетчер служб IIS” и через контекстное меню выбираем “Подключиться к сайту”

5. Остается ввести в пустые поля данные, которые у нас записаны в файле публикации.

Имя пользователя нужно писать без знака “$” в начале. Пароль у вас должен давно иметься на руках, если вы администратор сайта на IIS. Если не помните его, то на портале Azure можно его посмотреть.

На этом всё. Можно рулить сайтом на IIS в Azure так же как и на родном Windows Server.

Перевод сайта в Microsoft Azure на HTTPS

Сегодня перевел свой блог, который хостится в Microsoft Azure на https подключение. Да, знаю, в этом конечно мало пользы, так как у меня на сайте нет ничего ценного, но все же было интересно это сделать для получения нового опыта.

В самом WordPress ничего специально настраивать не нужно, чтобы сайт начал работать через https. Все работы делаются на web-сервере или через административную панель хостинг-провайдера. Заранее только нужно подготовить SSL-сертификат. В моем случае я сгенерировал сертификат бесплатный, на сайте STARTSSL. После этого заходим на портал Microsoft Azure в соответствующий раздел, где можно загрузить SSL-сертификат для сайта.

Не забудьте загруженный сертификат привязать к нужному домену в этом же разделе. После этого можно уже проверять, сайт должен быть доступен по https.Осталось сделать последнюю настройку, чтобы web-сервер автоматически переадресовывал все запросы по протоколу http на https. Для этого (если у вас сайт на IIS) нужно загрузить  из корня сайта файл web.config, а если его нет, то создать его. В нем должно быть такое содержимое:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
<rewrite>
<rules>
<rule name="Redirect to HTTPS" enabled="true" patternSyntax="ECMAScript">
<match url="(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Правило, относящееся к переадресации на https я выделил жирным шрифтом. Все остальное копировать не надо, если у вас файл web.config уже существует. После этого можно уже проверять, переадресация должна работать.

PHP 7 в Windows Azure

Еще 3 мая 2016 года появилась запись в блоге разработчиков Windows Azure о том, что PHP 7 стал доступен для опубликованных web-сайтов.

И вот наконец я перевел свой блог на эту новую платформу

 

Как мне кажется теперь все стало быстрее работать, но специальных измерений я проводить не стал.

Включение DKIM в Office 365

С недавних пор в Office 365 появилась возможность включения технологии DomainKeys Identified Mail (DKIM). Чтобы это сделать, необходимо сначала создать две CNAME на DNS сервере, отвечающем за вашу доменную зону.

selector1._domainkey CNAME selector1-murava-ru._domainkey.muravamoscow.onmicrosoft.com.

selector2._domainkey CNAME selector2-murava-ru._domainkey.muravamoscow.onmicrosoft.com.

Вместо выделенных частей у Вас должны быть свои наименования доменов. Чтобы посмотреть какие нужно прописывать Вам, необходимо зайти через Powershell в Exchange Online

1) Запустить PowerShell от имени Администратора.
2) Проверить политики командой "Get-Executionpolicy". Если установлено "Restricted", запустить команду “Set-Executionpolicy remotesigned” или „Set-Executionpolicy unrestricted“.
3) Запустить команду "$LiveCred = Get-Credential", в процессе выполнения которой Вам необходимо вписать юзернейм и пароль администратора.
4) Запустить команду "$Session = New-PSSession -ConfigurationName Microsoft.Exchange –ConnectionUri https://ps.outlook.com/powershell -Credential $LiveCred -Authentication Basic -AllowRedirection"
5) Запустить команду "Import-PSSession $Session".
6) Выполнить команду Get-DkimSigningConfig -Identity murava.ru| fl Domain, *CNAME (вместо murava.ru пропишите свой домен)

После этого нужно немного подождать, пока изменения в DNS вступят в силу (от нескольких минут до нескольких часов) и также через Powershell, подключенный к Exchange Online, выполнить команду:

Set-DkimSigningConfig murava.ru -Enabled $true

либо можно это проделать через графический интерфейс Office 365, зайдя в Панель администратора Exchange – Защита – DKIM и нажать на гиперссылку “Включить”.

Остается настроить DMARC для вашего домена. Для этого необходимо в записи DNS домена добавить правила в виде TXT-записей. Название созданной записи должно быть «_dmarc.murava.ru», где murava.ru замените вашим собственным доменом. В значении TXT-записи нужно прописывать правило, по которому будут обрабатываться входящие письма. Самой простой записью будет “v=DMARC1; p=reject” – отклонять все сообщения, не прошедшие проверку DMARC. Подробнее обо всех значениях в txt-записи DMARC можно узнать на официальной странице этой технологии.

Работа с Azure через командную строку (powershell)

1. Зайти на http://azure.microsoft.com/ru-ru/
2. Выбрать раздел «Загрузки», в котором будет «Программы командной строки». Выбираем нужную платформу, скачиваем и устанавливаем

3. После установки в cmd или powershell можно набрать команду «azure» и появится справочная система платформы

4. С помощью команды azure account list убеждаемся, что у нас еще не подключены никакие подписки в Azure.

5. Пишем команду azure account download , которая откроет нам страницу браузера. Нам нужно будет ввести учетные данные администратора подписки Azure. После этого нас перебросит на страницу с подписками и сразу же будет предложено скачать файл с расширением .publishsettings

6. Выполняем команду azure account import <путь к файлу .publishsettings>

7. Теперь, если снова выполнить команду azure account list , появится список текущих подписок.

Все готово, чтобы писать скрипты или просто выполнять различные манипуляции в своих Azure аккаунтах через powershell.

Как перенести блог в Microsoft Azure

Добрый день ! Пару недель назад обнаружил, что у меня заканчивается хостинг на 1gb.ru. Решил перенести блог в другое место. И я тут подумал “а почему бы его не перенести в Microsoft Azure”. По-умолчанию, эта платформа поддерживает блоги на WordPress. Сказано-сделано. За один вечер смог всё перенести. Самым сложным оказалось создание записей в DNS-зоне. Их должны быть три: A-запись указывающая  на сам хост и CNAME записи:
awverify.onix.me
www.onix.me
В процессе переноса понадобится доступ к сайту в Azure по FTP а также wordpress-плагин WordPress Database Backup. Доступ по ftp можно найти в админке Azure или воспользоваться программой Webmatrix, которая с помощью Microsoft Account автоматически определяет подписки в Windows Azure и подгружает  сайты, которые у вас там числятся. С помощью плагина WordPress Database Backup вам нужно будет сделать резервную копию базы данных на старом хостинге и впоследствии ее восстановить уже в Windows Azure.

Если у кого-то возникнут сложности с переносом, пожалуйста, можете обращаться ко мне. Я вам всегда буду рад помочь.