Современный веб-сайт должен поддерживать шифрование трафика SSL и аутентификацию отправляемой почты с политиками безопасности SPF, DKIM и DMARC.
SSL-сертификат получается здесь: freessl.space. Необходимое время при авторизации через папку с файлом в пределах 5 минут. Далее сертификат устанавливается на хостинг, правила установки в каждом случае свои. Обычно для этих целей существует веб-интерфейс в панели администирования сайта.
Сначала нам нужно сгенерировать приватный и публичный ключи. На маке/линуксе это делается так (комментарии в конце строк не копируйте):
openssl genrsa -out private.pem 1024 // приватный ключ длинной 1024 openssl rsa -pubout -in private.pem -out public.pem // делаем публичный ключ из приватного
Копируем ключи на хостинг в какую-то папку. Получаем строку публичного ключа из файла (склеив строки в одну без комментариев). Вносим в DNS запись для нужного домена/субдомена.
тип записи: TXT name: mail._domainkey TTL: 21600 text: v=DKIM1; k=rsa; t=s; p=[сюда копируем строку публичного ключа]
Путь к приватному ключу, подписанный ключом домен и dns-селектор (в нашем случае это mail из строки mail._domainkey) прописываем в скрипт отправления почты и на этом все.
Так же в DNS вписывается следующая строка:
тип записи: TXT name: @ text: v=spf1 a mx ~all
Аналогично DMARC тоже прописывается строкой в DNS.
тип записи: TXT name: _dmarc text: v=DMARC1;p=reject;pct=25;rua=mailto:[емейл для отчетов об ошибках]
После произведенных манипуляций надо подождать несколько часов, чтобы данные DNS обновились на серверах интернета, и все заработает. Проверяется все это так: при наличии сертификата SSL сайт начинает поддерживать работу с протоколом https:// вместо http:// и рядом с названием домена появляется замочек в строке браузера. Почтовые политики проверяются отправкой письма на gmail. Там письмо надо открыть и сверху справа нажать на три точки. В выпадающем меню выбрать «Показать оригинал». В открывшемся окне среди прочего в заголовке письма будут три строки: SPF, DKIM, DMARC. Если все прошло успешно, напротив них будет стоять отметка PASS. Поздравляю, вы в Мексике.
Сегодня пришлось сделать выбор — идти по пути использования сторонних решений или использовать собственные для одного из проектов, которые находятся в работе. К счастью, за время колебаний копилка готового кода сильно подросла и выяснилось, что проще собрать все из своих кубиков. Это с одной стороны немного замедляет выпуск в продакшн, но с другой — сильно экономит время и средства на сопровождение в дальнейшем. В ближайшие дни будет апдейт и опубликована ссылка на готовый проект.
Давно хотел сделать себе что-то вроде stand-alone записной книжки в интернетах. Многое из того, что я сейчас делаю, я уже делал лет 20 назад, но это меня не смущает: программирование остается программированием, и если ты возвращаешься к нему, то базовые библиотеки для удобной работы придется написать заново, если старые не сохранились.
Но некоторых вещей тогда не было, поэтому что-то приходится делать впервые, и эти решения полезны прямо сейчас. Буду выкладывать их сюда.