Как сделать ssl сертификат для сайта самому бесплатно

Внимание! Если у вас возникнут трудности, обращайтесь. С удовольствием помогу вам все настроить.

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

Инструкция идеально подойдет тем, у кого сайт на WordPress, а домен зарегистрирован в RU-CENTER

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

Минусы подобного решения

Ещё один существенный минус заключается в том, что данное решение не начинает работать сразу. Это происходит по причине того, что требуется время на обновление DNS-серверов, поскольку мы у своего домена меняем записи касающиеся именно DNS. На этом все минусы кончаются и начинаются плюсы, а плюсов там полно.

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

Получаем административный доступ к домену

Первым делом нам необходимо узнать кто регистратор нашего домена (не путайте с хостингом), для этого нам нужно получить whois домена. Это можно сделать на любом из тысяч сайтов, которые предоставляют такую функцию. Поскольку я являюсь пользователем Linux (Ubuntu), получить whois домена я могу прямо в терминале.

Ответ команды whois в терминале

Ссылка из whois привела меня на страницу с формой.

Whois-сервис на сайте RU-CENTER

То, что мне нужно, находится в правом верхнем углу — ссылка на страницу авторизации.

Авторизация на сайте регистратора RU-CENTER

Поскольку я не знаю ни пароля, номера договора, мне нужно кликнуть ссылку «Напомнить номер договора и пароль».

Восстановление доступа в личный кабинет на сайте регистратора

Кликаем «+Add site» справа вверху и видим форму с одним полем, в поле вводим имя домена нашего сайта.

Добавление сайта в Cloudflare

Жмем кнопку «Add Site». И если все нормально, то мы должны увидеть следующее:

Запрос настроек DNS с текущего сервера

Жмем «Next». После этого мы попадем на страницу с тарифами.

Выбор тарифного плана

Кликаем тариф «FREE» и жмем «Confirm Plan».

Подтверждение выбора тарифного плана

Тут Жмем «Confirm». После этого мы попадем вот на такую страницу:

Предварительная настройка DNS

Скролим до конца и жмем кнопку «Continue». И вот тут начинается самое интересное. На следующем шаге мы видим нейм-сервера, которые нам необходимо скопировать.

Сообщение о необходимости сменить NS-записи
Изменение NS-записей на сайте регистратора
Форма для изменения NS-записей
Сообщение об ожидании смены NS-записей
Сообщение об успешной смене NS-записей

Об изменении статуса сервис уведомит письмом.

Читать также:  Международный прививочный сертификат где взять в москве

Включаем наш сайт

Переходим на страницу «DNS»/

Панель навигации по разделам личного кабинета Cloudflare

И смотрим что там у нас творится. Если на странице мы увидим вот такую картину:

Раздел DNS с неактивными записями
Раздел DNS с активированными записями

После того, как статус нашего сайта сменится на «Active», можно приступать к дальнейшей настройке.

Первым делом идем на страницу настройки шифрования, кликнув значок в виде замка.

Переходим в раздел Crypto

Тут справа в выпадающем списке выбираем «Flexible».

Раздел Crypto с активированным режимом Flexible

Спускаемся чуть ниже до пункта «Always Use HTTPS».

Всегда использовать HTTPS

Кликаем переключатель, он должен позеленеть.

Активирован режим постоянного использование HTTPS

Спускаемся ещё ниже до пункта «Automatic HTTPS Rewrites» и также включаем этот режим.

Активация автоматической переадресации на протокол HTTPS

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

В этом разделе все. Переходим в раздел «Page Rules».

Переход на страницу Page rules

Тут нам потребуется создать два правила переадресации. Перед созданием правил подумайте какой адрес сайта вам нужен, с www или без www и потом уже приступайте к этапу настройки. Я же приведу два варианта и вам всего лишь потребуется реализовать тот, что вам подходит.

Для создания правила нам необходимо нажать кнопку «Create Page Rule».

Кнопка для создания новой Page rules

Теперь переходим к нужному пункту.

Для домена без www

Создаем правило. В верхнем поле пишем имя домена с www. В списке ниже выбираете пункт «Forwarding URL», рядом в списке выбираете пункт «301 — Permanent Redirect». Во второе поле пишите адрес сайта с https и с $1 на конце.

Создание Page rules

Жмем кнопку «Save and Deploy».

Для домена с www

Если вам необходимо чтобы сайт работал на домене с www, то поля необходимо заполнить как на скриншотах ниже.

Создание page rules для домена с www

Через несколько минут все наши настройки начнут работать.

Читать также:  Цена декларации ТР ТС, ГОСТ, ЕАЭС и сертификата на продукцию

Переходим на вкладку «Crypto».

Как сделать ssl сертификат для сайта самому бесплатно

Ищем секцию «Origin Certificates» и жмем кнопку «Create Certificate».

Как сделать ssl сертификат для сайта самому бесплатно

В появившемся окне ничего не меняем и жмем «Next» и видим вот такое окно:

Содержимое сертификатов key и pem

В принципе инструкция видна на скриншоте. Для тех, кто не понял, содержимое поля «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 я выбираю «Установка сертификата» и попадаю на страницу загрузки файлов:

Установка сертификата от Cloudflare на сервер

Устранение бесконечных редиректов на WordPress

Плагин для решения проблемы работы WordPress при Flexible

Как сделать ssl сертификат для сайта самому бесплатно

Как сделать ssl сертификат для сайта самому бесплатно

После чего можем производить работы с сайтом для перевода его на 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 от админа и уже от туда запускаем файл сертификата. Выглядит это так:

Как сделать ssl сертификат для сайта самому бесплатно

Как сделать ssl сертификат для сайта самому бесплатно

#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 с путем до сертификата поддомена, то это не срабатывает. Как сделать ssl сертификат для сайта самому бесплатно

Установка и настройка OpenServer

Как сделать ssl сертификат для сайта самому бесплатно

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

Преимущество этого решения перед ближайшими аналогами заключается в грамотной реализации системы управления добавленными доменами, а также в присутствии графического интерфейса. Это позволит пользователю вовсе забыть об использовании «Командной строки» для управления собственным сервером.

Устанавливаем OpenServer на компьютер

Многие выбирают OpenServer, поскольку этот софт крайне прост в инсталляции и конфигурировании. Также он имеет графический интерфейс, что немаловажно для огромного пласта юзеров. Предлагаю ознакомиться с развернутым тематическим руководством, начать которое нужно с того, как установить OpenServer.

Как сделать ssl сертификат для сайта самому бесплатноПосле установки и перезагрузки компьютера можно переходить к следующему этапу взаимодействия с 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

Как сделать ssl сертификат для сайта самому бесплатно

Внимательно ознакомьтесь с оставленными выше инструкциями, чтобы досконально разобраться в теме установки и настройки 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:

  • При запросе выполняется проверка домена. Для этого необходимо:
    1. либо создать TXT-запись в DNS.
    2. либо поднять веб-сервер, далее в его корне создается каталог .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

В меню справа кликаем по Привязки:

Переходим к настройкам привязок сайта

Изменяем привязку для имеющийся записи и, при необходимости, добавляем еще:

Настраиваем привязки сайта

Применяем настройки и закрываем консоль управления 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 для нужной разрядности операционной системы:

Скачиваем win-acme pluggable для Windows x32 или x64

Ра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

Обратите внимание, что в зависимости от версии 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:

Задание в планировщике Windows для автоматического продления сертификата

Wildcard

Особенности получения Wildcard от Let’s Encrypt:

  1. Подтвердить право использования доменом можно только с помощью DNS — таким образом, затрудняется процесс автоматического продления. Нужно использовать плагины, которые позволяют автоматически создавать нужную запись на DNS, но они доступны далеко не для всех поставщиков услуг DNS. В противном случае, обновлять Wildcard нужно вручную.
    Также, некоторые панели управления хостингом, например ISP Manager с версии 5 могут управлять процессом получения Wildcard от Let’s Encrypt с возможностью автоматического продления (но необходимо, чтобы домен обслуживался на данном хостинге).
  2. Время действия сертификата также ограничено 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 сертификат

Если сертификата нет, браузеры предупреждают об опасности сайта: что злоумышленники могут перехватить данные, которые пользователи оставляют на сайте, например, адрес почты или номер банковской карты. Это может выглядеть как зачеркнутый замочек:

Знак незащищенного соединения в браузере Mozilla Firefox
Знак незащищенного соединения в браузере Mozilla Firefox

Или текстовое предупреждение:

Знак незащищенного соединения в Google Chrome
Знак незащищенного соединения в Google Chrome

Для чего нужен 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 сертификат при покупке имени

Как получить 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 по инструкции ниже или воспользуйтесь автоматической формой установки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *