Внимание! Если у вас возникнут трудности, обращайтесь. С удовольствием помогу вам все настроить.
Несмотря на то, что я всем рекомендую не связываться с бесплатными сертификатами, я решил написать инструкцию получения халявного сертификата для своего сайта. Почему для ленивых чайников? Ну, потому что действий требуется минимум и разбираться особо ни в чем не надо, за исключением лишь момента с получением доступа к домену сайта, тут придется пораскинуть мозгами, но совсем чуть-чуть.
Инструкция идеально подойдет тем, у кого сайт на WordPress, а домен зарегистрирован в RU-CENTER
Честно говоря, на примере своих сайтов я не заметил сколь какого-нибудь снижения нагрузки и прироста в скорости загрузки. Видимо это чувствуется на более посещаемых ресурсах чем мои. Но суть не в этом и не об этом разговор. Поскольку о данном сервисе я узнал совсем случайно, посетив какой-то мегапопулярный сайт, который на тот момент лежал, я решил побаловаться и добавить туда свой сайт. Благо для нищебродов есть бесплатный тариф.
Минусы подобного решения
Ещё один существенный минус заключается в том, что данное решение не начинает работать сразу. Это происходит по причине того, что требуется время на обновление DNS-серверов, поскольку мы у своего домена меняем записи касающиеся именно DNS. На этом все минусы кончаются и начинаются плюсы, а плюсов там полно.
Но все эти минусы теряют свою актуальность если вы заморочитесь о самподписном SSL-сертификате для вашего сайта, в таком случае все ништяк и проблем не будет в принципе.
Получаем административный доступ к домену
Первым делом нам необходимо узнать кто регистратор нашего домена (не путайте с хостингом), для этого нам нужно получить whois домена. Это можно сделать на любом из тысяч сайтов, которые предоставляют такую функцию. Поскольку я являюсь пользователем Linux (Ubuntu), получить whois домена я могу прямо в терминале.
Ссылка из whois привела меня на страницу с формой.
То, что мне нужно, находится в правом верхнем углу — ссылка на страницу авторизации.
Поскольку я не знаю ни пароля, номера договора, мне нужно кликнуть ссылку «Напомнить номер договора и пароль».
Кликаем «+Add site» справа вверху и видим форму с одним полем, в поле вводим имя домена нашего сайта.
Жмем кнопку «Add Site». И если все нормально, то мы должны увидеть следующее:
Жмем «Next». После этого мы попадем на страницу с тарифами.
Кликаем тариф «FREE» и жмем «Confirm Plan».
Тут Жмем «Confirm». После этого мы попадем вот на такую страницу:
Скролим до конца и жмем кнопку «Continue». И вот тут начинается самое интересное. На следующем шаге мы видим нейм-сервера, которые нам необходимо скопировать.
Об изменении статуса сервис уведомит письмом.
Включаем наш сайт
Переходим на страницу «DNS»/
И смотрим что там у нас творится. Если на странице мы увидим вот такую картину:
После того, как статус нашего сайта сменится на «Active», можно приступать к дальнейшей настройке.
Первым делом идем на страницу настройки шифрования, кликнув значок в виде замка.
Тут справа в выпадающем списке выбираем «Flexible».
Спускаемся чуть ниже до пункта «Always Use HTTPS».
Кликаем переключатель, он должен позеленеть.
Спускаемся ещё ниже до пункта «Automatic HTTPS Rewrites» и также включаем этот режим.
Этот режим исправит ссылки, у которых вместо https будет http. Очень полезная штука для тех, кто не хочет рыться в исходном коде и искать где что исправить.
В этом разделе все. Переходим в раздел «Page Rules».
Тут нам потребуется создать два правила переадресации. Перед созданием правил подумайте какой адрес сайта вам нужен, с www или без www и потом уже приступайте к этапу настройки. Я же приведу два варианта и вам всего лишь потребуется реализовать тот, что вам подходит.
Для создания правила нам необходимо нажать кнопку «Create Page Rule».
Теперь переходим к нужному пункту.
Для домена без www
Создаем правило. В верхнем поле пишем имя домена с www. В списке ниже выбираете пункт «Forwarding URL», рядом в списке выбираете пункт «301 — Permanent Redirect». Во второе поле пишите адрес сайта с https и с $1 на конце.
Жмем кнопку «Save and Deploy».
Для домена с www
Если вам необходимо чтобы сайт работал на домене с www, то поля необходимо заполнить как на скриншотах ниже.
Через несколько минут все наши настройки начнут работать.
Переходим на вкладку «Crypto».
Ищем секцию «Origin Certificates» и жмем кнопку «Create Certificate».
В появившемся окне ничего не меняем и жмем «Next» и видим вот такое окно:
В принципе инструкция видна на скриншоте. Для тех, кто не понял, содержимое поля «Origin Certificate» в файл с именем site.ru.pem, а содержимое «Private key» в файл с именем site.ru.key. Сохранили? Жмем «OK».
openssl req -new -key site.ru.key -out site.ru.csr
Естественно вместо site.ru.key подставляем имя своего файла. На вопрос «Common Name (e.g. server FQDN or YOUR name)» пишем имя домена сайта без www, на все остальное отвечаем релевантно или пропускаем, если нечего написать. После этого выполним вторую команду:
openssl x509 -req -days 365 -in site.ru.csr -signkey site.ru.key -out site.ru.crt
После этого у нас появится файл .crt, теперь необходимо загрузить все это дело на сервер. Я покажу это на примере моего хостера SpaceWeb. В разделе SSL я выбираю «Установка сертификата» и попадаю на страницу загрузки файлов:
Устранение бесконечных редиректов на WordPress
После чего можем производить работы с сайтом для перевода его на HTTPS и после завершения работ, нам потребуется включить все обратно и довольствоваться халявным сертификатом.
#1 Создаем .bat файл
: Version 1.0 : Author unknown (improved by Kama - wp-kama.ru) @echo off : parameters set DOM=demo.ru set DOM_KEY=demo set APACHE_VER=Apache_2.4-PHP_7.2-7.3-x64 : create .txt config file set config_txt=generate-temp-config.txt ( echo nsComment = "Open Server Panel Generated Certificate" echo basicConstraints = CA:false echo subjectKeyIdentifier = hash echo authorityKeyIdentifier = keyid,issuer echo keyUsage = nonRepudiation, digitalSignature, keyEncipherment echo. echo subjectAltName = @alt_names echo [alt_names] echo DNS.1 = %DOM% echo DNS.2 = www.%DOM% ) > %config_txt% mkdir %DOM_KEY% set OSAPACHE_DIR=%~dp0..\..\..\modules\http\%APACHE_VER% set OPENSSL_CONF=%OSAPACHE_DIR%\conf\openssl.cnf %OSAPACHE_DIR%\bin\openssl req -x509 -sha256 -newkey rsa:2048 -nodes -days 5475 -keyout %DOM_KEY%\%DOM_KEY%-rootCA.key -out %DOM_KEY%\%DOM_KEY%-rootCA.crt -subj /CN=OSPanel-%DOM_KEY%/ %OSAPACHE_DIR%\bin\openssl req -newkey rsa:2048 -nodes -days 5475 -keyout %DOM_KEY%/%DOM_KEY%-server.key -out %DOM_KEY%\%DOM_KEY%-server.csr -subj /CN=%DOM_KEY%/ %OSAPACHE_DIR%\bin\openssl x509 -req -sha256 -days 5475 -in %DOM_KEY%\%DOM_KEY%-server.csr -extfile %config_txt% -CA %DOM_KEY%\%DOM_KEY%-rootCA.crt -CAkey %DOM_KEY%\%DOM_KEY%-rootCA.key -CAcreateserial -out %DOM_KEY%\%DOM_KEY%-server.crt %OSAPACHE_DIR%\bin\openssl dhparam -out %DOM_KEY%\%DOM_KEY%-dhparam.pem 2048 del %DOM_KEY%\%DOM_KEY%-server.csr del %DOM_KEY%\%DOM_KEY%-dhparam.pem del %DOM_KEY%\%DOM_KEY%-rootCA.srl del %config_txt% pause
- DOM — домен для которого создается сертификат
- DOM_KEY — как будет называться папка с сертификатами и префикс у файлов сертификата. Указываем тут домен без зоны или сокращенное название домена, чтобы вам было понятно от какого домена текущий сертификат.
- APACHE_VER — имя папки апач сервера из
C:\OpenServer\modules\http\
. Из этого сервера будет использована библиотекаopenssl
для создания сертификатов.
Между =
в параметрах не должно быть пробелов!
// Правильно set DOM_KEY=demo // Неправильно set DOM_KEY= demo set DOM_KEY = demo
Чтобы создать очередной сертификат для домена, нужно будет просто открыть этот файл, изменить параметры и запустить его.
#2 Запускаем файл generate-DOM-CERT.bat (как обычный юзер, НЕ админ!)
Для запуска делаем двойной клик по файлу. Файл создаст папку домена (параметр DOM_KEY) и в ней файлы сертификатов.
#3 Добавляем созданный сертификат в хранилище сертификатов Windows
Для этого запускаем файл DOM_KEY/DOM_KEY-rootCA.crt
.
ВАЖНО! Файл надо запускать с правами админа! Если в контекстном меню нет пункта «Открыть от админа», то открываем cmd/powerShell от админа и уже от туда запускаем файл сертификата. Выглядит это так:
#4 Копируем файл конфигурации апача
#5 Изменяем скопированный файл конфигурации
Apache_2.4-PHP_7.2-7.3-x64_vhost.conf
— поправляем в нем пути до созданных файлов сертификатов.
Должен получится примерно такой код файла:
<VirtualHost *:%httpport%> DocumentRoot "%hostdir%" ServerName "%host%" ServerAlias "%host%" %aliases% ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/" </VirtualHost> <IfModule ssl_module> <VirtualHost *:%httpsport%> DocumentRoot "%hostdir%" ServerName "%host%" ServerAlias "%host%" %aliases% ScriptAlias /cgi-bin/ "%hostdir%/cgi-bin/" SSLEngine on SSLCertificateFile "%sprogdir%\userdata\config\cert_files\DOM_KEY\DOM_KEY-server.crt" SSLCertificateKeyFile "%sprogdir%\userdata\config\cert_files\DOM_KEY\DOM_KEY-server.key" </VirtualHost> </IfModule>
#6 Готово!
Перезагружаем OpenServer и возможно браузер.
Использую OpenServer 5.6 (PHP 7.1×64)
При попытке создать новый Laravel-проект с помощью Композера командой composer create-project --prefer-dist laravel/laravel blog
вижу в командной строке следующее:
Installing laravel/laravel (v5.6.21)
— Installing laravel/laravel (v5.6.21): Downloading (failed) Downloading (failed) Downloading (failed) Failed to download
laravel/laravel from dist: The
«https://api.github.com/repos/laravel/laravel/zipball/3f92cf66f53b3b53467497acc0d2a00cbd7b65f0»
file could not be downloaded: SSL operation failed with code 1.
OpenSSL Error messages:
error:14090086:SSL
routines:ssl3_get_server_certificate:certificate verify failed
Failed
to enable crypto
failed to open stream: operation failed
Now trying to download from source
— Installing laravel/laravel (v5.6.21): Cloning 3f92cf66f5 from cache
Created project in blog
Так по всем зависимостям.
Раньше все работало нормально!
[curl]
curl.cainfo = "%sprogdir%/modules/php/%phpdriver%/cacert.pem"
[openssl]
openssl.cafile="%spr
git config --global http.sslVerify false
результата не принес
В чем может быть дело, какие варианты для исправляения могут быть? Заранее спасибо
Сгенерировать SSL Серитфикат
Создать (в любом месте и с любым именем) файлик .bat
с содержанием:
! Внимательно проверьте все пути, у вас они наверняка будут отличатся
@echo OFF rem УКАЖИТЕ ПРАВИЛЬНЫЕ РАСПОЛОЖЕНИЯ ФАЙЛОВ set OPENSSL_CONF=E:\open-server\modules\http\Apache_2.4-PHP_7.0-7.1-x64\conf\openssl.cnf PATH=%PATH%;E:\open-server\modules\http\Apache_2.4-PHP_7.0-7.1-x64\bin rem Количество дней действия сертификата set days=730 set key_bits=2048 rem Наименование домена, для которого создаётся сертификат set dname=loc-domain.test rem УКАЖИТЕ ПРАВИЛЬНЫЕ РАСПОЛОЖЕНИЯ ФАЙЛОВ rem Расположение корневого сертификата и ключа set root_cert=E:\open-server\userdata\config\cert_files\rootCA.crt set root_key=E:\open-server\userdata\config\cert_files\rootCA.key echo [trust_cert] > %dname%.cnf echo subjectAltName=@alt_names >> %dname%.cnf echo keyUsage=digitalSignature,keyEncipherment,dataEncipherment >> %dname%.cnf echo extendedKeyUsage=serverAuth,clientAuth >> %dname%.cnf echo [alt_names] >> %dname%.cnf echo DNS.1 = %dname% >> %dname%.cnf openssl genrsa -out %dname%.key %key_bits% openssl req -sha256 -new -utf8 -key %dname%.key -out %dname%.csr -subj /emailAddress="info\@ospanel\.io"/C=RU/stateOrProvinceName="Russian Federation"/L=Moscow/O="Open Server Panel"/OU=Software/CN=%dname%:3000 rem Для создания сертификата, подписанного доверенным сертификатом openssl x509 -sha256 -req -days %days% -in %dname%.csr -extfile %dname%.cnf -extensions trust_cert -CA %root_cert% -CAkey %root_key% -out %dname%.crt openssl x509 -in %dname%.crt -noout -purpose rem Удаление временных файлов del %dname%.csr del %dname%.cnf pause
Добавить rootCA. crt в Доверенные корневые центры сертификации
При установки для первого локального домена нужно добавить rootCA.crt
в доверенное хранилище. Для этого кликаем правой кнопкой мыши по сертификату rootCA.crt
, выбираем Установить сертификат
-> … -> «Поместить все сертификаты в следующее хранилище» -> «Доверенные корневые центры сертификации».
Применить SSL для конкретного домена
Ок, сертификат установлен, теперь его нужно активировать для определенного домена. Для этого:
Если вы затрудняетесь определить какая именно у вас конфигурация, то это можно увидеть в Настройках Open Server, во вкладке Модули -> HTTP.
SSLCertificateFile "%sprogdir%/userdata/config/cert_files/loc-domain.test.crt" SSLCertificateKeyFile "%sprogdir%/userdata/config/cert_files/loc-domain.test.key"
Заметки и ссылки по теме:
HTTPS для OpenServer (SSL сертификат)
Между = в параметрах не должно быть пробелов!
Чтобы создать очередной сертификат для домена, нужно будет просто открыть этот файл, изменить параметры и запустить его.
#2 Запускаем файл generate-DOM-CERT.bat (как обычный юзер, НЕ админ!)
Для запуска делаем двойной клик по файлу. Файл создаст папку домена (параметр DOM_KEY ) и в ней файлы сертификатов.
#3 Добавляем созданный сертификат в хранилище сертификатов Windows
ВАЖНО! Файл надо запускать с правами админа! Если в контекстном меню нет пункта «Открыть от админа», то открываем cmd/powerShell от админа и уже от туда запускаем файл сертификата. Выглядит это так:
#4 Копируем файл конфигурации апача
#5 Изменяем скопированный файл конфигурации
Apache_2.4-PHP_7.2-7.3-x64_vhost.conf — поправляем в нем пути до созданных файлов сертификатов.
Должен получится примерно такой код файла:
Перезагружаем OpenServer и возможно браузер.
Подскажите плиз. Это самоподписные сертификаты? Читал что браузеры такие сертификаты считают невалидными и будут ругаться, что соединение не защищено.
Я так понимаю это для Вордпресса. А для Джумлы подскажите плиз.
Нет никакой разницы, какой движок стоит или нет его вовсе. Сертификат делается для домена ведь. Вчера по этой инструкции сделал под домен, где стоит WP, и под домен, где просто лендинг без CMS. Ни в одном из случаев проблем не возникло.
У меня Windows 10 и при добавлении сертификата в хранилище не было local computer выбрал Enterprise сработало.
Подскажите пожалуйста, как сделать и установить сертификат для поддомена в режиме WordPress мультисайт?
Для добавления поддомена я использую вкладку Open Server «Алиасы» и в ней прописываю алиас поддомена и указываю конечный домен содержащий сам движок.
Либо использую вкладку «Домены» и указываю в качестве имени домена нужный поддомен, а качестве папки домена указываю директорию с движком.
Мультисайт работает и так и так, но как цепануть сертификат?
Я предварительно сгенерировал его по данному мануалу, но если в папке с движком в файле апача добавить еще две директивы SSLCertificateFile и SSLCertificateKeyFile с путем до сертификата поддомена, то это не срабатывает.
Установка и настройка OpenServer
В случае необходимости запуска сайта на домашнем компьютере (например, если во время тестирования не хочется загружать его на хостинг), пользователи обращаются за помощью к программам, развертываемым на локальном сервере. Одним из лучших локальных серверов является OpenServer, настройка которого даже у неопытного юзера не займет много времени.
Преимущество этого решения перед ближайшими аналогами заключается в грамотной реализации системы управления добавленными доменами, а также в присутствии графического интерфейса. Это позволит пользователю вовсе забыть об использовании «Командной строки» для управления собственным сервером.
Устанавливаем OpenServer на компьютер
Многие выбирают OpenServer, поскольку этот софт крайне прост в инсталляции и конфигурировании. Также он имеет графический интерфейс, что немаловажно для огромного пласта юзеров. Предлагаю ознакомиться с развернутым тематическим руководством, начать которое нужно с того, как установить OpenServer.
После установки и перезагрузки компьютера можно переходить к следующему этапу взаимодействия с OpenServer.
Первый запуск OpenServer
После инсталляции рекомендуется произвести первый запуск OpenServer, чтобы продолжить дальнейшую настройку, а также просто убедиться в том, что программа функционирует нормально. Для этого потребуется выполнить всего несколько простых действий:
Если на этом этапе с запуском уже возникли проблемы, переходите к ознакомлению с отдельным разделом в конце статьи, где вы узнаете о двух разных методах решения возникшей неполадки.
Первоначальная настройка OpenServer
Настройка OpenServer – обязательный процесс, который требуется выполнить хотя бы для того, чтобы обеспечить комфорт в работе. Первоначальное конфигурирование подразумевает изменение всего нескольких параметров и выглядит так:
Остальные параметры пока трогать не нужно. Большинство из них ситуативные и редко изменяются пользователями, которые разворачивают на своем компьютере локальный сервер.
Установка WordPress на OpenServer
WordPress – одна из самых популярных систем управления контентом. Установка WordPress на OpenServer тоже может понадобиться, ведь иногда есть необходимость протестировать проект в полностью готовом виде. Разделим процесс инсталляции на основные этапы, чтобы упростить процесс понимания.
Шаг 1: Скачивание и распаковка WordPress
Сам ВордПресс распространяется бесплатно, поэтому от пользователя требуется только загрузить его и распаковать в соответствующем месте на локальном хранилище. Эта операция займет всего несколько минут.
Шаг 2: Создание базы данных и пользователя для phpMyAdmin
Шаг 3: Настройка файла wp-config
Завершающий этап конфигурирования – настройка файла wp-config.php. Здесь от пользователя требуется выполнить всего несколько простых действий:
Осталось только выполнить инструкции, отобразившиеся в этой же вкладке, чтобы начать работу с WordPress. Готово!
Решение возможных проблем с работой OpenServer
Больше всего проблем у пользователей возникает при попытке первого запуска ОпенСервер на своем компьютере. Есть две самые распространенные причины неполадок, которые и стоит обсудить.
Причина 1: Действие антивируса
Если на компьютере установлен сторонний антивирус, рекомендую отключить его, а затем проверить работоспособность локального сервера. Если причина действительно оказалась в том, что защита блокирует соединение, просто внесите программу в исключения.
Причина 2: Изменения файла hosts
Внимательно ознакомьтесь с оставленными выше инструкциями, чтобы досконально разобраться в теме установки и настройки OpenServer. В этом нет ничего сложного, а на весь процесс уйдет максимум полчаса.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Похожий контент
Добавил markimax Добавлено 21.07.2016 Категория SEO, карта сайта, оптимизация Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
2.2
2.1
2.0 ocStore 2.3
2.2
2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
Opencart.pro 2.1
OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена 0
В процессе наполнения контентом и верстки шаблонов магазина, зачастую встречаются ссылки
как на внутренние так и на внешние ресурсы совершенно разного вида.
Например если у вас встречаются ссылки www.vash_site.ru/link_1 и без vash_site.ru/link_1 в контенте магазина,
автоматичски в https преобразуются только ссылки, которые вы определилил как основное зеркало.
А все остальные остануться старые и бразуеры будут выписывать warning и не включать зеленый замочек.
При помощи модуля, вы сможете создать любые правила для любых преобразований внутренних ссылок в магазине как внутренних так и внешних.
Теперь вам не нужно судорожно искать, где же вы в шаблоне еще не поменяли http на https,
достаточно посмотреть в консоль и написать в модуле соответсвующее правило.
После склейки http и https, советую в htaccess настроить редирект 301 с http на https, чтобы ссылки магазина работали только по https протоколу
Для правильной работы фикса у вас должны отличаться HTTP_CATALOG и HTTPS_CATALOG в config.php.
Также мод фиксит проблемы определения протокола, при нестандартных настройках связки nginx => apache.
Грамотный перевод магазина на протокол HTTPS
Получение бесплатного SSL сертификата Let’s Encrypt
Тематические термины: Let’s Encrypt, CentOS, Ubuntu
Процесс в данной статье описан на примере систем Linux CentOS, Ubuntu (Debian) и Windows. Настройка выполняется в несколько шагов.
Условия получения бесплатного сертификата от Let’s Encrypt
Прежде чем начать, необходимо знать о некоторых нюансах получения сертификата Let’s Encrypt:
- При запросе выполняется проверка домена. Для этого необходимо:
- либо создать TXT-запись в DNS.
- либо поднять веб-сервер, далее в его корне создается каталог .well-known, а в нем файл с произвольным названием. После корневой центр отправляет запрос серверу на загрузку данного файла и, в случае успеха, выдает сертификаты для указанного доменного имени.
- SSL-сертификат выдается на 90 дней, поэтому необходимо по расписанию запускать команду на автоматическое продление ключа. Когда проходит 60 дней после начала использования нового сертификата, центр Let’s Encrypt может выдать новый.
- Если выполнять запрос для домена 3 уровня и выше, он должен пройти DNS проверку на всех уровнях. Например, домен layer3.layer2.com должен отвечать на запросы как для layer3.layer2.com, так и для layer2.com.
Проверка домена
Как было сказано выше, для получения бесплатного сертификата, Let’s Encrypt должен удостовериться, что мы являемся владельцем домена. Свое право на его владение мы можем подтвердить, создав специальную TXT-запись или настроив веб-сервис, который будет отвечать на запросы.
Настройка веб-сервера
Данный способ немного сложнее для Linux (для Windows все настройки делает утилита автоматически), но позволяет без проблем настроить автоматическое продление.
Запрашивать сертификат Let’s Encrypt проще всего с веб-сервера, на котором запущен сайт для домена. Возможен альтернативный вариант с монтирование сетевой папки, но его рассматривать не будем.
Linux NGINX
Пример простого конфигурационного файла для NGINX:
Если сервер уже используется для сайта, в секцию server добавляем:
При необходимости выполнять проверку и использовать rewrite/return, добавляем что-то подобное:
После проверяем конфигурацию и перезапускаем nginx:
nginx -t && nginx -s reload
Linux Apache
Создаем общий конфигурационный файл, в котором пропишем алиас.
а) для CentOS:
б) для Ubuntu / Debian:
Со следующим содержимым:
Alias /.well-known/acme-challenge/ /var/www/html/.well-known/acme-challenge/
* в данном примере, запросы для страниц /.well-known/acme-challenge всех сайтов мы переводим в каталог /var/www/html/.well-known/acme-challenge.
Проверяем корректность конфигурационного файла:
И перезапускаем apache:
Windows
IIS должен отвечать на http-запрос до доменному имени, для которого мы планируем получить сертификат. Также в его настройках мы должны сделать привязку узла, для которого хотим получить сертификат к конкретному сайту. Для этого в консоли управления IIS раскрываем сайты и выбираем нужный нам (в данном примере, он всего один):
В меню справа кликаем по Привязки:
Изменяем привязку для имеющийся записи и, при необходимости, добавляем еще:
Применяем настройки и закрываем консоль управления IIS.
С помощью записи в DNS
Данный метод проще, описанного выше, но он позволит настроить автоматическое продление сертификата только для некоторых DNS, для которых есть отдельные certbot-плагины. Поэтому данный способ, в большинстве случаев, будет удобен для проведения тестов.
Установка утилиты для получения сертификата
Certbot для Linux
1) Rocky Linux:
dnf install epel-release
2) на CentOS 8:
dnf —enablerepo=powertools install certbot
3) на CentOS 7:
yum install certbot
4) на Ubuntu 16.04 и выше, а также Debian:
5) на CentOS 6 или Ubuntu 14.04 / 12.04:
Создадим каталог, в котором будет храниться утилита и переходим в него:
Загружаем утилиту и разрешаем ее запуск:
chmod a+x ./letsencrypt-auto
Для удобства, делаем симлинк:
ln -s /opt/certbot/letsencrypt-auto /usr/local/sbin/certbot
При первом запуске certbot он автоматически предложит доустановить необходимые зависимости — соглашаемся.
LetsEncrypt-Win-Simple для Windows
На сайте GitHub скачиваем win-acme pluggable для нужной разрядности операционной системы:
Раcпаковываем скачанный архив в любую папку.
Первое получение сертификата
Linux
1. Если мы подтверждаем право на домен при помощи веб-сервера, выполняем команду с таким синтаксисом:
- certonly — запрос нового сертификата;
- webroot — проверка будет выполняться на основе запроса к корню сайта;
- agree-tos — даем согласие на лицензионное соглашение;
- email — почтовый адрес администратора домена;
- webroot-path — каталог в системе Linux, который является корневым для сайта;
- d — перечисление доменов, для которых запрашиваем сертификат.
а) Пример запроса при использовании веб-сервера NGINX:
б) Пример запроса при использовании веб-сервера Apache:
После успешного выполнения команды, сертификаты будут созданы в каталоге /etc/letsencrypt/archive/dmosk.ru, а также симлинки на них в каталоге /etc/letsencrypt/live/dmosk.ru. При настройке приложений, стоит указывать пути до симлинков, так как при обновлении файлы в первом каталоге будут меняться, во втором — нет. Публичный ключ будет с именем cert.pem, а приватный — privkey.pem.
2. При подтверждении права на домен с TXT-записью:
- certonly — запрос нового сертификата;
- manual — проверка домена вручную.
- preferred-challenges — указывает метод проверки домена.
- agree-tos — даем согласие на лицензионное соглашение;
- email — почтовый адрес администратора домена;
- d — перечисление доменов, для которых запрашиваем сертификат.
На запрос подтверждения отвечаем Y — система выдаст что-то на подобие:
Once this is deployed,
* Данное сообщение говорит, что мы должны создать TXT-запись _acme-challenge.dmosk.ru со значением W2SC9b88y2j2oUjhxVgS7Bphph9g5PqhkBq9KiWkLTm.
Создаем соответствующую запись в панели управления DNS, и в консоли сервера нажимаем Enter для продолжения. Если, как в данном примере, мы запрашиваем сертификат для нескольких узлов, повторяем действия.
Windows
Открываем командную строку от администратора и переходим в распакованный каталог. Например, если архив распакован на диск C, выполняем:
* где 2.1.6.773.x64 — моя версия утилиты.
Если запускаем в Powershel, то так:
Утилита формирует бинарный сертификат для Windows, но если мы хотим получить файлы в формате pem, вводим:
wacs.exe —store pemfiles —pemfilespath C:\Certificates
* где pemfilespath — путь до каталога, в котором должны оказаться файлы сертификата.
Откроется меню с выбором действия — вводим N, чтобы создать новый сертификат:
Обратите внимание, что в зависимости от версии win-acme, некоторые пункты могут отличаться. Внимательно просмотрите варианты.
Выбираем сайт в IIS, который отвечает на запросы нашего домена (в нашем случае, это единственный Default Web Site, то есть 1):
Если для сайта создано несколько привязок, выбираем 3, чтобы создать сертификаты для всех:
Вводим email адрес и подтверждаем корректность данных:
Утилита создаст необходимый каталог для проверки домена, запросит проверку, получит сертификат, добавит привязку к сайту по 443 порту с добавлением полученного сертификата и создаст в планировщике задание на автоматическое продление сертификата.
Автоматическое продление
Утилита certbot позволяет выполнить обновление сертификата в автоматическом режиме. В зависимости от операционной системы, инструменты различаются.
Linux
Смотрим полный путь до скрипта certbot:
Открываем на редактирование cron и добавляем следующее:
Если система вернет ошибку crontab: command not found, устанавливаем пакет cron:
apt install cron
* перавая команда для Deb, вторая — RPM.
а) для Ubuntu / Debian / Rocky Linux:
0 0 * * 1,4 /usr/bin/certbot renew —noninteractive
б) для CentOS:
0 0 * * 1,4 /bin/certbot renew —noninteractive
* в данном примере проверка и продление сертификата будет выполняться по понедельникам и четвергам (1,4) в 00:00. /usr/bin/certbot или /bin/certbot — путь, который мне выдала команда which certbot.
Команда certbot renew проверяет для всех наших сертификатов срок окончания, и если осталось менее 30 дней, запрашивает новый, сохраняет его в каталоге /etc/letsencrypt/archive/<домен> и обновляет симлинк.
Стоит иметь ввиду, что многие приложения, использующие сертификат, потребуют перезапуска, чтобы перечитать его. Поэтому хорошей идеей будет не просто обновлять сертификат, но и перезапускать сервис, который использует сертификат. Например, для NGINX:
systemctl reload nginx
Однако, нам нужно, чтобы это происходило автоматически. Для этого открываем файл:
И добавляем строку:
Windows
Настройка задания на автоматическое продление создается при получении сертификата. Проверить задание можно в планировщике заданий Windows:
Wildcard
Особенности получения Wildcard от Let’s Encrypt:
- Подтвердить право использования доменом можно только с помощью DNS — таким образом, затрудняется процесс автоматического продления. Нужно использовать плагины, которые позволяют автоматически создавать нужную запись на DNS, но они доступны далеко не для всех поставщиков услуг DNS. В противном случае, обновлять Wildcard нужно вручную.
Также, некоторые панели управления хостингом, например ISP Manager с версии 5 могут управлять процессом получения Wildcard от Let’s Encrypt с возможностью автоматического продления (но необходимо, чтобы домен обслуживался на данном хостинге). - Время действия сертификата также ограничено 3 месяцами.
Certbot
Необходимо, чтобы версия утилиты certbot была 0.22.0 и выше. Проверить текущую версию можно командой:
а) для CentOS / Red Hat:
б) для Ubuntu / Debian:
apt install —only-upgrade certbot
Процесс получения
Процесс очень похож на процесс получения сертификата с подтверждением домена в DNS.
* обратим внимание на 2 детали: 1) мы добавили опцию server, чтобы указать, на каком сервере Let’s Encrypt должна проходить проверка DNS; 2) мы получаем сертификат как для *.dmosk.ru, так и самого dmosk.ru, так как первое не включает второго.
Before continuing, verify the record is deployed.
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —
* в данном примере система попросила создать TXT-запись _acme-challenge.dmosk.ru со значением DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI.
Заходим в панель управления DNS и создаем нужную запись. Если у нас свой сервер DNS, например, bind, то строка будет такой:
; TXT
_acme-challenge IN TXT DN8ovKFJ0leLQV9ofZ81mYKxojwIaed5g6f0bXZCYiI
Не торопимся нажимать Enter — после настройки DNS нужно немного времени (пару минут), чтобы настройка применилась. Проверить появление записи можно командой с рабочего компьютера:
nslookup -type=txt _acme-challenge.dmosk.ru 8.8.8.8
Как только видим, что настройки применились, нажимаем Enter — если это наш первый запрос Wildcard для данного домена, то система нас попросит создать еще одну запись — повторяем процедуру, создав в DNS вторую запись TXT.
Если все сделали правильно, то увидим:
IMPORTANT NOTES:
— Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/dmosk.ru/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/dmosk.ru/privkey.pem
Your cert will expire on 2019-09-05. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
«certbot renew»
— If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
После получения сертификата мы не сможем экспортировать его с закрытым ключом. Мы можем изменить поведение, открыв файл settings.json в распакованном каталоге win-acme. Находим параметр PrivateKeyExportable и задаем ему значение:
После обновляем сертификат:
.\wacs.exe —renew —force
Или без обновления сертификата мы можем найти файл .pfx в каталоге: %programdata%\win-acme\$baseuri$\certificates.
Пароль для pfx можно найти в интерактивном меню wacs:
Manage Renewals > Show details
Сертификат Let’s Encrypt для почтового сервера MS Exchange
В комплекте установленного нами LetsEncrypt-Win-Simple для Windows идет скрипт ImportExchange.v2.ps1. Он нужен для импорта сертификата в конфигурацию почтового сервера MS Exchange.
Для начала создадим каталог, куда будет выгружен сертификат. В моем примере я воспользуюсь путем C:\SSL.
Допустим, что адрес подключения к серверу будет exchange.dmosk.ru. Тогда получить сертификат и импортировать его в Exchange можно командой:
* данная команда запросит сертификат для узла exchange.dmosk.ru, сохранит нужные файлы в каталоге C:\SSL и импортирует полученные ключи в Microsoft Exchange Server.
Если мы запускаем команду в оболочке PowerShel, клманда должна начинаться с:
После успешного выполнения команды, заходим в консоль управления сервером, переходим на вкладку управления сертификатами. В списке мы должны увидеть полученную последовательность от Let’s Encrypt. Кликаем по ней и назначаем сертификат для нужных служб Exchange (как правило, SMTP, IIS).
Возможные ошибки
Рассмотрим некоторые ошибки, с которыми мы можем столкнуться.
Missing command line flag or config entry for this setting
Ошибка появляется при попытке обновить сертификат для одного или нескольких доменов.
Причина: при обновлении сертификата, утилита certbot ищет настройки в конфигурационном файле /etc/letsencrypt/renewal/<имя домена>.conf. Если в данном файле не будет определена конфигурация для webroot_map, мы получим данную ошибку.
Открываем конфигурационный файл для домена, например:
Находим опцию webroot_map (как правило, в самом низу). Либо она будет пустой, либо указывать на неправильный путь. Исправляем это:
* мы указываем домен и каталог, в котором будет создаваться проверочный файл.
Пробуем обновить сертификат.
ACMEv1 is deprecated and you can no longer get certificates from this endpoint
Ошибка появляется при попытке запросить или обновить сертификат. Полный текст ошибки:
Причина: утилита на компьютере устарела. Она пытается использовать API-портал ACMEv1, который больше не поддерживается.
Решение: обновляем утилиту certbot.
а) Для Ubuntu/Debian:
б) Для Rocky Linux/CentOS:
yum update certbot
Читайте также
Другие полезные материалы:
2. Настройка Apache + SSL для работы сайта по HTTPS.
В этой статье расскажу, как получить SSL сертификат бесплатно — подобрала для вас четыре сервиса, которые выдают такие сертификаты, и подскажу еще один не самый очевидный способ. Заодно разберемся, какие вообще бывают сертификаты, зачем они нужны и подойдет ли бесплатный вариант вашему бизнесу.
Что такое SSL сертификат
Вы наверняка замечали, что у сайтов в начале адреса стоит либо http://, либо https://. Буква s во втором варианте означает наличие у сайта SSL сертификата — это подтверждение, что пользователь и сайт будут обмениваться данными в зашифрованном виде. В этом случае данные все равно можно перехватить, но без ключа из сертификата их будет невозможно расшифровать. Вместо информации по кредитке воришка получит хаотичный набор данных.
Наличие SSL сертификата можно понять по значку замка в адресной строке:
Если сертификата нет, браузеры предупреждают об опасности сайта: что злоумышленники могут перехватить данные, которые пользователи оставляют на сайте, например, адрес почты или номер банковской карты. Это может выглядеть как зачеркнутый замочек:
Или текстовое предупреждение:
Для чего нужен SSL сертификат
Во-первых, SSL сертификат поможет защитить ваших пользователей от мошенников. Какие варианты обмана могут быть:
- Злоумышленник просто заберет данные пользователей из потока данных и будет использовать их в своих целях.
- Более активное вмешательство — злоумышленник сможет изменить данные. Например, вы будете переводить платеж, а он поменяет счет получателя и сумму, и все ваши деньги уйдут к нему.
Во-вторых, пользователь будет спокоен — он увидит значок замка и будет чувствовать себя в безопасности.
В-третьих, получение SSL сертификата положительно скажется на ранжировании сайта поисковиками. Это знак, что вы заботитесь о безопасности пользователей, и повод для системы разместить вас повыше в выдаче.
Какие бывают SSL сертификаты
Есть разные виды SSL сертификатов. Они могут отличаться по количеству доменов и субдоменов, для которых они могут использоваться. Например, мультидоменные сертификаты могут защищать два, три или пять доменов. Сертификат с опцией wildcard распространяется на все субдомены указанного в сертификате домена.
Также сертификаты различаются по тому, как именно сайт будет проверяться. Тут есть три варианта:
- Уровень домена — DV SSL (domain validation). Такой сертификат подтверждает только сам сайт: что пользователь действительно попал на этот домен и данные передаются в зашифрованном виде. Срок выпуска: от 15 минут до пары часов.
- Уровень организации — OV SSL (organization validation). Проверяется не только сайт, но и его принадлежность конкретной компании, эта информация будет отображаться в сертификате. Срок выпуска: до 3 дней.
- Расширенный уровень — EV SSL (extended validation). Проверяется не просто домен и его принадлежность к компании, но и работа самой компании: разрешение на деятельность, налоговая отчетность и прочие документы. Он самый крутой: в адресной строке будет зеленым шрифтом написано еще и название организации. Срок выпуска: до 2 недель.
И, наконец, есть несколько доверенных центров, которые выпускают сертификаты — например, Thawte, Sectigo, Geotrust, GlobalSign и другие. Их продукты отличаются уровнем защиты и различными дополнительными функциями.
Кому подойдет бесплатный SSLсертификат
В большинстве случаев бесплатно вы можете получить только SSL сертификат низшего уровня, то есть с подтверждением домена — DV. Это значит, что вариант с бесплатным SSL сертификатом подойдет только для небольших сайтов, которые не просят у пользователя «опасных» данных вроде номера кредитки. Например, это:
- личный блог;
- сайт-визитка;
- сайт-витрина.
Для интернет-магазинов и прочих сайтов, которые запрашивают у пользователя финансовые и/или деликатные личные данные, лучше получать SSL сертификаты следующих уровней.
Где получить SSL сертификат бесплатно
Нашла для вас пять способов получить SSl сертификат без затрат.
Let’s Encrypt
Эта некоммерческая организация выдает бесплатные SSL DV сертификаты со сроком жизни три месяца. Можно получить wildcard-сертификат.
Free SSL Space
Еще одна некоммерческая организация, которая также выдает 90-дневные DV сертификаты. Отличается от Let’s Encrypt совместимостью: как заявляет компания, их сертификаты поддерживаются на 99,99% устройств. Нет опции wildcard.
ZeroSSL
У этого сервиса есть бесплатный тариф — DV сертификат на 90 дней. Как и Free SSL, заявляют о 99,99% совместимости с серверами, браузерами и устройствами, однако на бесплатном тарифе не поддерживается wildcard.
CloudFlare
У хостинг-провайдера или регистратора доменных имен
Это условно-бесплатный способ получить SSL сертификат. Если вы только собираетесь заводить сайт или ищете новый хостинг — рассмотрите предложения, где бонусом идет сертификат.
Как получить SSL сертификат бесплатно и зачем он нужен
SSL сертификат — это инструмент, который переключает ваш сайт в защищенный режим https. Благодаря ему все данные, которыми вы обмениваетесь с пользователями, будут надежно зашифрованы, а ключ к расшифровке будет только у вас.
Благодаря SSL сертификату:
- злоумышленники не смогут воспользоваться данными пользователей;
- люди будут больше доверять сайту, видя замочек в адресной строке;
- есть шанс подняться в поисковой выдаче.
Сертификаты бывают трех уровней:
- DV — для подтверждения домена. Обычно только этот уровень можно получить бесплатно.
- OV — для подтверждения домена и компании-владельца.
- EV — для расширенного подтверждения домена и компании-владельца.
Бесплатный SSL сертификат уровня DV выдают несколько сервисов:
- Let’s Encrypt — на 90 дней, можно получить на несколько доменов.
- Free SSL Space — на 90 дней, можно получить на несколько доменов.
- ZeroSSL — на 90 дней, только один домен в сертификате.
- CloudFlare — бессрочно, в один сертификат можно внести много доменов и субдоменов, не нужно устанавливать сертификат на свой сайт.
Также можно обзавестись SSL в качестве бонуса, когда вы покупаете услуги хостинг-провайдера или доменное имя.
Обеспечьте безопасность своим клиентам и себе! Обзаведитесь SSL сертификатом, чтобы никто не украл данные пользователей, а для безопасных рассылок через email, SMS, push, Viber и чат-боты используйте SendPulse.
Как установить SSL-сертификат на VPS или выделенный сервер
Перед установкой SSL перейдите в Личный кабинет, кликните по строке нужного SSL-сертификата и убедитесь, что статус услуги «Активна»:
Также вы можете использовать для установки сертификат, купленный в сторонней компании.
Установка SSL-сертификата
Способ установки сертификата безопасности на VPS/выделенный сервер зависит от того, используете ли вы панель ISPmanager для управления сервером.
- Если лицензионная панель ISPmanager не установлена, воспользуйтесь платной услугой Администрирование VPS. Либо установите SSL-сертификат по инструкции в зависимости от вашего веб-сервера: Установка SSL-сертификата на Nginx, Установка SSL-сертификата на Apache.
- Если вы используете панель ISPmanager, установите SSL по инструкции ниже или воспользуйтесь автоматической формой установки.