- Let’s encrypt
- Linux, freebsd
- Linux, freebsd, другие
- Nginx
- Исправление ошибок смешанного контента, вызванных плагинами
- Как исправить ошибку смешанного контента в базе данных wordpress
- Как проверить работу 301 редиректа?
- Как это работает
- Как это сделать?
- Конфиденциальность
- Наборы шифров
- Ограничения
- Перенаправление остальных элементов
- Предупреждения о смешанном содержимом
- Пример простой настройки перенаправления для веб-сервера apache
- Проверка подлинности
- Работа с плагином search regex
- Самоподписанные сертификаты
- Типы ключей
- Шаг 1. создать секретный ключ и запрос на получение сертификата
- Шаг 2. активация ssl-сертификата
- Шаг 3. установка ssl-сертификата
Let’s encrypt
Процитируем сайт
Let’s Encrypt — это бесплатный, автоматизированный и открытый центр сертификации (CA), который работает для общественного блага. Сервис Let’s Encrypt предоставляется Internet Security Research Group (ISRG).
Ключевые принципы Let’s Encrypt:
Linux, freebsd
Убедитесь, что установлен OpenSSL. Вы можете проверить это:
openssl version
Если нет, то откройте консоль и установите его для своей платформы:
Затем сгенерируйте секретный ключ и CSR одной командой:
Linux, freebsd, другие
Самый простой способ установить сертификат Let’s Encrypt на своём сервере — использовать
Nginx
Отредактируйте файл конфигурации nginx (
nginx.conf
Эта конфигурация была сгенерирована с помощью упомянутого ранее
. С его помощью проверьте актуальность конфигурации. Отредактируйте правильные пути для сертификата и секретного ключа. Показанная здесь конфигурация сгенерирована с промежуточными настройками — прочитайте об ограничениях и конфигурациях браузера для каждой настройки, прежде чем выбрать наиболее подходящую для себя.
Исправление ошибок смешанного контента, вызванных плагинами
Некоторый смешанный контент могут загружать установленные и активные плагины WordPress. Любой плагин, который написал в соответствии стандартам разработки WordPress не привезет к ошибкам смешанного контента.
Мы не рекомендуем вам редактировать файлы плагинов WordPress. После обновления все эти изменения сбросятся. Лучшим вариантом будет обратиться к автору плагину и сообщить о ошибках. Если разработчик не будет отвечать или не сможет исправить ошибку, рекомендуем найти подходящую альтернативу.
Как исправить ошибку смешанного контента в базе данных wordpress
Большинство ошибок смешанного контента возникает из-за неправильных URL-адресов на изображения, файлы, видео и другой контент, который хранится в вашей базе данных. Для начала, давайте исправим их.
Как проверить работу 301 редиректа?
Для этого можно использовать инструмент проверки ответа сервера Яндекса:
Как это работает
Есть некоторые существенные отличия в работе Let’s Encrypt и других центров сертификации. В соответствии с тремя первыми пунктами, перечисленными выше, вот эти отличия:
Как это сделать?
Для того, чтобы выполнить правило, потребуется посетить административную панель хостинга (или же зайти через FTP), где в корневой папке сайта лежит файл htaccess.
Вводим нужное нам правило.
Конфиденциальность
Конфиденциальность представляет собой приватность — так и есть, она защищает информацию от чтения посторонними лицами. Обычно этот процесс предусматривает перевод информации из читаемой формы (в том числе аудио и видео), которая называется
открытый текст
, в зашифрованную, нечитаемую форму, которая называется
шифротекст
. Этот процесс именуется
шифрованием
. Обратный процесс — превращение нечитаемого шифротекста обратно в читаемый открытый текст — называется
расшифровкой
. Для шифрования и расшифровки информации существует много методов —
шифровальных функций
(или
алгоритмов
Чтобы две стороны могли общаться, они должны прийти к согласию по двум вопросам:
- Какой алгоритм (шифровальную функцию) использовать в коммуникации.
- Какие параметры, пароли или правила (то есть секрет) будут использоваться с выбранным методом.
Есть два основных метода шифрования:
Симметричные методы шифрования полагаются на то, что обе стороны владеют одним и тем же секретом, который отправитель использует для шифрования, а получатель — для расшифровки тем же методом и тем же ключом (см. иллюстрацию внизу). Проблема этих методов состоит в том, как сторонам договориться (то есть обменяться) о секретном ключе, не встречаясь физически друг с другом — им нужно установить какой-то безопасный канал связи.

Симметричное шифрование (см. большую версию)
Асимметричные методы решают проблемы такого рода — они основаны на понятии публичных и секретных ключей. Открытый текст шифруется одним ключом и может быть расшифрован с использованием парного ему ключа.
Итак, как это работает? Предположим, что у нас есть две стороны, которые желают безопасно общаться друг с другом — Алиса и Боб (в каждом учебнике всегда используются такие имена вымышленных персонажей, в справочниках по безопасности и прочих, мы уважаем эту традицию).
Если Алиса хочет отправить сообщение Бобу, она должна раздобыть его публичный ключ, зашифровать открытый текст и отправить ему шифротекст. Он затем использует свой секретный ключ для расшифровки.
Если Боб хочет отправить сообщение Алисе, он должен раздобыть её публичный ключ, зашифровать открытый текст и отправить ей шифротекст. Она затем использует свой секретный ключ для расшифровки.

Асимметричное шифрование (см. большую версию)
Когда мы используем симметричное, а когда асимметричное шифрование?
Асимметричное шифрование используется для обмена секретом между клиентом и сервером. В реальной жизни нам обычно не нужна двусторонняя асимметричная коммуникация — достаточно, если одна из сторон (назовём её сервер для простоты) владеет набором ключей, так что она может получать зашифрованные сообщения.
В реальности это защищает информацию только в одном направлении — от клиента к серверу, потому что информация, зашифрованная публичным ключом, может быть расшифрована только с помощью парного ему секретного ключа: значит, только сервер может её расшифровать.
Другое направление не защищено — информация, зашифрованная секретным ключом сервера, может быть расшифрована его публичным ключом, который открыт для всех. Другая сторона (также для простоты назовём её клиент) начинает коммуникацию с шифрования случайно сгенерированного секрета сессии публичным ключом сервера, затем отправляет шифротекст обратно на сервер, который, в свою очередь, расшифровывает его с помощью своего секретного ключа, и теперь владеет секретом.
Затем для защиты реальных данных при передаче используется симметричное шифрование, поскольку оно гораздо быстрее асимметричного. Обменявшись секретом, только две стороны (клиент и сервер) могут шифровать и расшифровывать информацию.
Вот почему первая асимметричная часть рукопожатия также известна как обмен ключами и вот почему реально зашифрованные коммуникации используют алгоритмы, известные как методы шифрования.
Наборы шифров
Выбор набора шифров для использования — это компромисс между совместимостью и безопасностью:
OpenSSL перечисляет поддерживаемые комбинации (см. выше) в порядке убывания их криптографической стойкости. Так сделано, чтобы во время первоначального рукопожатия между клиентом и сервером они перебирали комбинации начиная с самой сильной до тех пор, пока не найдут комбинацию, которая поддерживается обеими сторонами.
Википедия содержит исчерпывающий список алгоритмов для всех компонентов TLS и указывает их поддержку в разных версиях SSL и TLS.
Mozilla SSL Configuration Generator — очень полезный и крайне рекомендуемый справочник, какие криптографические методы использовать на сервере. Мы позже будем использовать его в реальных серверных конфигурациях.
Ограничения
Let’s Encrypt выдаёт только сертификаты DV. Сертификаты OV и EV не поддерживаются, и в данный момент нет планов их поддержки. Выдаются сертификаты на один или несколько доменов, но в данный момент нет сертификатов с поддоменами (подстановочными знаками). Для получения дополнительной информации см.
Перенаправление остальных элементов
Чтобы сделать 301 редирект остальных элементов (не записей), картинок, ссылок, таблиц и т.д. нужно установить ненадолго плагин Velvet Blues Update URLs. Чтобы установить плагин:
- Перейдите в раздел плагины > добавить новый
- В поле поиск введите название
- На карточке нажмите кнопку активировать
Устанавливаем и вводим настройки, заходим в раздел инструменты > Update URLs. В поле Old URL вводим адрес сайта без протокола, а New URL с ним.
Далее переходим ко второму шагу и отмечаем все галочки кроме последней. Этим действием перезапишем все имеющиеся на сайте объекты, в которых могут содержаться URL без протокола, и нажимаем Update.
Инструмент начнет работу, и после покажет сводную таблицу сколько элементов изменено. После проделанной операции, можно деактивировать и удалить его из WordPress.
Предупреждения о смешанном содержимом
Возле адресной строки вы можете увидеть предупреждающий знак и сообщение вроде «Соединение небезопасно! Части страницы не защищены (такие как изображения)». Это не означает, что вы неправильно установили сертификат: просто убедитесь, что ссылки на все ресурсы (изображения, таблицы стилей, скрипты и др.), как локальные так и с удалённых серверов, не начинаются с
Пример простой настройки перенаправления для веб-сервера apache
В файле .htaccess дополните строку
RewriteEngine On
как показано ниже
Проверка подлинности
Что насчёт
аутентичности
? Проблема с реальными приложениями публичной инфраструктуры ключей состоит в том, что ни у одной стороны нет способа узнать, кем на самом деле является вторая сторона — они физически разделены друг от друга. Чтобы доказать свою аутентичность второй стороне, вовлекается
третья сторона, имеющая взаимное доверие — центр сертификации (CA)
. Этот CA выпускает
сертификат
с подтверждением того, что доменное имя
Работа с плагином search regex
Готово, плагин даст полный список файлов, которые надо изменить.
Самоподписанные сертификаты
Существует возможность самому подписать сертификат, а не отдавать это право центру сертификации. Это хорошо для целей тестирования, потому что с криптографической точки зрения самоподписанный сертификат не отличается от любого другого, но браузеры не станут ему доверять, а начнут показывать предупреждение безопасности — вы можете выдавать себя за кого угодно, но это не проверено доверенной третьей стороной.
Типы ключей
Сертификаты Elliptic Curve Cryptography (
ECC
) быстрее обрабатываются и используют меньше CPU, чем сертификаты RSA, что особенно важно для мобильных клиентов. Однако некоторые сервисы, такие как Amazon, CloudFront и Heroku на момент написания этой статьи пока не поддерживают сертификаты ECC.
256-битная длина ключа для ECC считается достаточной.
Сертификаты Rivest Shamir Adleman (RSA) более медленные, но совместимы с большим разнообразием старых серверов. Ключи RSA больше по размеру, так что 2048-битный ключ RSA считается минимально допустимым. Сертификаты RSA с ключами 4096 бит и больше могут ухудшать производительность — к тому же, скорее всего, они подписаны 2048-битным ключом посредника, что по большей части подрывает дополнительную защиту!
Вы могли заметить расплывчатость заявлений, сделанных выше, и отсутствие каких-либо чисел. То, что может нагрузить один сервер, не нагрузит другой сервер. Лучший способ определить влияние на производительность — это проверить загрузку на своём собственном сервере, с реальным веб-сайтом и реальными посетителями. И даже это изменится со временем.
Шаг 1. создать секретный ключ и запрос на получение сертификата
В следующих примерах мы будем использовать 2048-битные сертификаты RSA, по причине их большей совместимости. Если ваш провайдер, у которого установлен сервер, поддерживает ECC (например, если вы не пользуетесь услугами Heroku или AWS), то можете предпочесть использовать ECC.
Шаг 2. активация ssl-сертификата
Следующий этап переноса сайта на защищенный протокол — активация SSL-сертификата. После покупки сертификат появится в списке услуг в Личном кабинете.
Активация зависит от вида сертификата:
Шаг 3. установка ssl-сертификата
Данные для установки сертификата отправляются после его выпуска и активации на контактный e-mail владельца услуги.
