Установим SSL сертификаты на почтовый сервер hMailServer. Используем порты для SSL/TLS:
- SMTP 587
- IMAP 993
- POP3 995
Сами сертификаты будем брать бесплатные — Let's Encrypt.
Ссылки
IIS — SSL сертификат Let's Encrypt
Получение сертификатов
web-сайт
Заводим на IIS сайт c адресом почтового сервера. Естественно, делаем всё это на сервере, где крутится hMailServer. Создаём там любую страничку index.html для проверки работы сайта.
Проверяем, что сайт работает.
Сайт работает.
Папка
Создаём папку для хранения сертификатов. Я создаю C:\mail\ssl.
Скрипт для перезапуска hMailServer
Сертификат Let's Encrypt действует 90 дней. В планировщике добавится ежедневное правило для обновления сертификатов. Когда сертификат для hMailServer обновится через 90 дней, то hMailServer нужно перезагрузить, напишем для этого простой скрипт. Создадим в папке C:\mail\ssl файл restart_hmailserver.bat с содержимым.
@ECHO OFF
NET STOP hmailserver
NET START hmailserver
Выпуск сертификатов
Читаем статью IIS — SSL сертификат Let's Encrypt и генерируем для нашего сайты SSL сертификаты Let's Encrypt.
Запускаем wacs.exe под администратором.
Нам нужен пункт "Create new certificate" with advanced option". Пишем "m".
Выбираем "SAN certificate for all bindings of an IIS site". Пишем "2".
Находим в списке домен своего почтового сервера, пишем его номер, у меня "7".
Выбираем список доменных имён для исключения. Или ввод, если исключений нет. Я нажимаю Enter.
Я нажимаю Enter.
Выбираем способ подтверждения владения доменом. Для IIS это "4".
Тип CSR. Пишем "2".
Вот теперь важный пункт, где храним сертификаты. Выбираем "3", чтобы записать их в папку.
Нас спросят, в какую папку записывать сертификаты, указываем C:\mail\ssl.
Теперь спрашивают, нужно ли выполнить скрипт после записи сертификатов. Пишем "2", конечно нужно перезапустить hMailServer!
Просят указать путь к скрипту. Пишем C:\mail\ssl\restart_hmailserver.bat.
Enter.
Здесь у меня уже был ранее создана задача перевыпуска этого сертификата, пишу "y".
И так, создаётся задача на обновление сертификата.
Происходит процедура проверки владения доменом — успех.
Экспортируются файлы сертификата в C:\mail\ssl.
Выполняется скрипт C:\mail\ssl\restart_hmailserver.bat, это нам пока не нужно, понадобится при выпуске следующих сертификатов.
Проверяем, что файлы созданы:
Настройка SSL в hMailServer
В админке hMailServer в Settings > Advanced > SSL certificates добавляем сертификат.
Certificate file — указываем путь к *-chain.PEM файлу.
Private key file — указываем путь к *.key.PEM файлу.
Сохраняем "Save".
В админке hMailServer в Settings > Advanced > TCP/IP ports добавляем 587 SMTP порт.
- Протокол: SMTP
- TCP/IP adress: 0.0.0.0
- TCP/IP port: 587
- Connection security: SSL/TLS
- SSL Certificate: из выпадающего списка выбираем добавленный ранее сертификат.
В админке hMailServer в Settings > Advanced > TCP/IP ports добавляем 993 IMAP порт.
- Протокол: IMAP
- TCP/IP adress: 0.0.0.0
- TCP/IP port: 993
- Connection security: SSL/TLS
- SSL Certificate: из выпадающего списка выбираем добавленный ранее сертификат.
В админке hMailServer в Settings > Advanced > TCP/IP ports добавляем 995 POP3 порт.
- Протокол: POP3
- TCP/IP adress: 0.0.0.0
- TCP/IP port: 995
- Connection security: SSL/TLS
- SSL Certificate: из выпадающего списка выбираем добавленный ранее сертификат.
Перезапускаем hMailServer.
На этом настройка SSL для hMailServer завершена.
Проверка
Создадим тестовый ящик. Я создаю test@internet-lab.ru с каким-нибудь паролем.
Проверяем на gmail
Проверяем на gmail как работает SSL на 995 порту POP3.
В настройках gmail в разделе "Аккакунты и импорт" можно закачивать письма из других ящиков. Добавляем почтовый аккаунт test@internet-lab.ru.
Далее.
Импортировать письма из другого аккаунта (POP3). Далее.
Указываем имя пользователя test@internet-lab.ru, пароль, адрес почтового сервера, порт 995, ставим галку SSL. Добавить аккаунт.
Почтовый аккаунт добавлен. Готово.
Напишем на тестовый ящик письмо и проверим почту.
Поступило одно письмо. 995 POP3 через SSL работает.
Проверяем в Outlook
Проверяем в Outlook как работает SSL на 995 порту IMAP и на 578 порту SMTP. Создаём новую учётную запись в Outlook.
Выбираем "Ручная настройка или дополнительные типы серверов". Далее.
Выбираем "Протокол POP или IMAP". Далее.
Имя пользователя - любое, адрес электронной почты test@internet-lab.ru. Тип учётной записи IMAP.
Указываем сервер входящей и исходящей почты, для которого получали SSL сертификат. Указываем пользователя test@internet-lab.ru и пароль, галку "Запомнить пароль". Нажимаем "Другие настройки".
Вкладка "Сервер исходящей почты":
Указываем, что серверу исходящей почты тоже требуется авторизация.
Вкладка "Дополнительно":
IMAP-сервер, пишем порт 993, тип шифрования SSL.
SMTP-сервер, пишем порт 587, тип шифрования SSL.
Ok. Далее.
Проверки прошли успешно.
Заключение
Мы с вами успешно настроили и протестировали настройку SSL сертификатов от Let's Encrypt для почтового сервера hMailServer с помощью IIS. Более того, сертификаты будут автоматически обновляться и перезапускать hMailServer после обновления.
Если вы используете платные SSL сертификаты, то настройка SSL происходит таким же образом, просто пропускаете все шаги для Let's Encrypt, сохраняете свои сертификаты в любую папку у настраиваете их в админке hMailServer.