Получение SSL-сертификатов от COMODO и GOGETSSL.

nginx wordpress ssl https blog site

Доброго времени суток читатели и гости моего блога. Примерно в середине февраля я перевел свои сервер и сайт на работу по HTTPS-протоколу с поддержкой SSL-шифрования трафика. Попутно я решил написать несколько статей посвященных переходу на HTTPS, описывающих получение SSL-сертификатов, а также настройку сервера Nginx и CMS WordPress под его использование. В данной статье я расскажу про получение бесплатного (90-дневного) SSL-сертификата от компании COMODO и про последующую покупку платного сертификата на сайте GOGETSSL.

В связи с недавними законами, в частности с пакетом законов Яровой и новой стратегией развития информационного общества, в российской федерации уже довольно скоро можно будет забыть про анонимность и приватность в интернете. Конечно все произойдет не сразу, тем более ничего еще толком не известно, но начинать заботиться о своей безопасности нужно уже сейчас.

SSL-шифрование трафика является одним из способов сохранения приватности и безопасности ваших данных в сети. Вот что по этому поводу было написано в газете "Ведомости".

"почти вся хранимая информация, которая передается по сетям операторов, может быть непригодна к анализу и использованию в работе госорганов, говорится в заключении экспертной рабочей группы федерального уровня под руководством министра открытого правительства Михаила Абызова по поводу закона Яровой. Авторы документа ссылаются на подсчеты рабочей группы экспертного совета при правительстве: те указывают, что сейчас объем шифрованного трафика в сетях операторов составляет 49%, но уже через три года его доля в сетях операторов может достичь 90%. В то же время технология, позволяющая расшифровывать трафик, отсутствует. Это может создать трудности при исполнении закона, говорится в заключении группы."

Оригинал статьи от 17.02.2017.

Неплохо, правда? Подобное заявление от экспертной группы под руководством министра, не может не радовать пользователей сети и владельцев сайтов заботящихся о своей безопасности и приватности. Вот и я решил внести свой небольшой вклад в увеличение общего объема зашифрованного трафика и перевел свой сайт на HTTPS. А если честно, то мой сайт - это моя собственность, так же как и генерируемый им трафик, именно поэтому я не хочу чтобы в моем трафике копалось какое-то безликое чмо. Мне скрывать нечего, но всему должен быть разумный предел, а принятие подобных законов я не могу назвать разумным поступком, скорее это граничит с идиотизмом. А с идиотизмом нужно бороться, к чему мы и приступим.

Оформление бесплатного (90-дневного) сертификата.

Как я уже говорил, в качестве SSL-сертификата я выбрал пробную версию от компании COMODO с дальнейшей покупкой годового сертификата. Конечно можно было использовать бесплатные сертификаты от Let’s Encrypt или StartSSL, но я не особо доверяю бесплатным продуктам, особенно когда разговор идет о безопасности. Сертификат от COMODO можно приобрести от 4,9$ в год, что не так уж много, если сравнивать с бесплатными аналогами.

Получить бесплатный сертификат можно на сайте GOGETSSL, для регистрации перейдите по ссылке Try 90-day Trial SSL Certificate и открывшемся окне нажмите Create New Order.

Выберите пункты Private customer, SSL Certificates, Comodo Trial SSL и подтвердите ваш заказ нажатием на Complete Order.

comodo ssl wordpress nginxВы будете перенаправлены на страницу создания аккаунта, здесь нажимаем зеленую кнопку Create New Account, на следующей странице заполняем все поля отмеченные красными звездочками, после ввода данных нажимаем кнопку Next Step.

Правдивость введенных данных не проверяется, поэтому если не хотите указывать свои реальные данные, можете указать вымышленные, это уже вам решать. В любом случае эти данные не используются для SSL и не попадают в общий доступ, о чем вас предупреждают при заполнении форм.

После регистрации аккаунта заходим в личный кабинет и кликаем по надписи Incomplete Orders для завершения оформления заказа.

comodo ssl wordpress nginx

В открывшемся разделе My SSL Sertificates нажимаем оранжевую кнопку Generate рядом с заказанным сертификатом и переходим к разделу CSR-конфигурации. Здесь ничего не трогаем: Order Type - New Order, Web Server Software - Other, Signature algorithm - SHA2.

comodo ssl wordpress nginx

В окно с надписью Paste your CSR нужно вставить CSR-запрос, который будем генерировать на своем сервере.

Переходим в консоль сервера и генерируем RSA-файл ключа. Конечный файл может быть назван как угодно, например myname.key, главное не забудьте указать длину ключа в 2048-bit.

Создаем CSR-запрос используя созданный ранее файл ключа. Указание имен файлов идет через пробел, после -key указываем имя файла-ключа, после -out имя конечного CSR-файла.

Во время создания CSR-запроса будет предложено ввести свои данные. Некоторые поля можно пропускать, просто нажимая Enter. Если вдруг что-то написали не так как надо, то создание запроса можно прервать нажав сочетание клавиш CTRL+C, потом выполнение команды можно запустить повторно. Для примера выложу свой копипаст, там видно что нужно заполнять, а что можно пропустить.

Теперь нужно скопировать содержимое полученного CSR-файла и вставить в окошко валидатора на сайте. Просмотреть содержимое файла можно командой cat.

Вывод cat будет примерно такого вида.

Полностью копируем содержимое файла, вместе со строками BEGIN CERTIFICATE REQUEST и END CERTIFICATE REQUEST. Код вставляем в окошко валидатора и нажимаем кнопку Validate CSR.

comodo ssl wordpress nginx

Теперь нужно подтвердить свое владение указанным доменным именем. На выбор будет предложено несколько способов проверки: EMAIL, DNS, HTTP/HTTPS. Проще всего доказать что вы являетесь владельцем домена, это выбрать HTTP-способ проверки.

HTTP-способ подразумевает под собой загрузку определенного текстового файла в корневую директорию сайта, после чего к нему будет сделан запрос и если доступ к файлу будет получен, то вы прошли проверку и доказали что являетесь владельцем доменного имени.

Если у вас есть доступ к DNS-записям домена, то можно проверить домен DNS-способом. Если у вас есть электронный ящик вида "admin@mydomain.com", то можно выбрать проверку через EMAIL. Но самым простым способом проверки всегда был и остается HTTP-способ.

Выбираем HTTP-способ проверки, скачиваем предложенный текстовый файл, загружаем его в корневую директорию сайта и нажимаем Next Step.

comodo ssl wordpress nginx

В открывшемся разделе нужно заполнить данные администратора домена и технического администратора, эти данные могут отличаться от данных самого аккаунта (тоже не проверяют).

В графе Administrative Contact заполняем все поля помеченные звездочками. В графе Technical Contact Details должна стоять галочка на - Same as administrative contact (использовать администраторские данные), если галочку убрать, то придется заполнять еще и данные технического администратора. В конце соглашаемся с правилами и требованиями и нажимаем кнопку Complete Generation.

Осталось подождать результат проверки домена, обычно это не занимает много времени и зависит от загруженности сервиса, по крайней мере я никогда не ждал больше пяти минут.

В личном кабинете перейдите в раздел Manage SSL certificates, подтвержденный сертификат должен быть со статусом Active.

comodo ssl wordpress nginx

Оформление и покупка платного сертификата.

Получение платного сертификата, точнее шаги для его получения, практически ничем не отличаются от уже описанных выше действий. В личном кабинете переходим в раздел Manage SSL certificates и нажимаем кнопку New Order вверху экрана.

Оказавшись в разделе My Prices можно увидеть список доступных для продажи сертификатов и цены на них. Самые дешевые сертификаты находятся внизу списка, в пункте GOGETSSL. На своем сервере я использую GGSSL Domain SSL сертификат за 4,90$ в год.

comodo ssl wordpress nginx

Выберите подходящий сертификат и нажмите Order. В разделе Product Configuration выберите желаемый срок действия сертификата и нажмите кнопку Next Step.

comodo ssl wordpress nginx

Вам будет предложено проверить свой заказ и выбрать способ оплаты. После нажатия на Complete Order вы будете перенаправлены на форму оплаты, в зависимости от выбранного способа. Лично я платил через PayPal.

comodo ssl wordpress nginx

После оплаты сертификата его можно найти в разделе Incomplete Orders или в разделе My SSL Certificates личного кабинета. Все последующие действия не отличаются от уже описанных в предыдущем пункте. Нажимаем Generate, переходим к CSR-валидатору, создаем ключ, генерируем CSR-запрос, вставляем CSR-запрос в валидатор, проверяем CSR-запрос, потом подтверждаем владение доменом (т.е. придется выполнить почти весь первый раздел).

Ждем завершения проверки, готовый сертификат будет в разделе  My SSL Certificates.

comodo ssl wordpress nginx

Склейка сертификата для использования на сервере.

Когда ваши сертификаты будут проверены и подтверждены, это касается как платной так и бесплатной версий, вам нужно будет скачать файлы CRT и CA-BUNDLE и соединить в их в один файл. Именно этот файл и будет тем сертификатом, который мы будем использовать на сервере.

Нажимаем кнопку View рядом с выданным сертификатом и переходим в раздел SSL Certificate Details. В верхней части раздела размещены ссылки на скачивание нужных файлов.

comodo ssl wordpress nginx

Скачиваем два файла с иконками замочков (Download CRT и Download CA), скачанные файлы нужно перенести на сервер. Директория роли не играет, пусть это будет каталог /root.

Итак, у нас на сервере есть два файла - blog_techlist_top.crt и blog_techlist_top.ca-bundle и их нужно соединить в один файл.

Перейдите в каталог с файлами и командой cat соедините их в последовательности - сначала crt, потом ca-bundle. Имя файла может быть любым, например mydomain.com.crt.

Просмотрите содержимое полученного файла.

Иногда cat склеивает содержимое файлов не так как нужно, в результате добавления такого сертификата в конфигурацию сервера может появится подобная ошибка.

Ошибка вызвана содержанием файла, а именно слитными строками BEGIN и END CERTIFICATE.
Разделите строки ровно посередине и сохраните изменения, тогда ошибки не будет.

В результате мы имеем готовый сертификат, который можно указать в конфигурации сервера. Помимо этого нам понадобится файл ключа (у меня это blogtechlist.key), который мы создавали для генерации CSR-запроса.

Про настройку сервера Nginx и переводе WordPress-сайта на HTTPS читайте в следующих статьях.