Как подключить бесплатный SSL-сертификат Let’s Encrypt для Apache на сервере с Ubuntu 17.04

Перед началом установки сертификата вам нужно соблюсти несколько условий:
а) У вас должен быть установлен Apache. Вот инструкция по установке.
б) У вас должен быть настроен виртуальный хост. Вот инструкция по настройке.
Установка сертификата:
1.) Обновите индекс пакетов:
sudo apt-get update -y
2.) Установите git для загрузки Let’s Encrypt:
sudo apt-get install git -y

3.) Далее нужно загрузить сертификат Let’s Encrypt в каталог /opt/letsencrypt:
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
4.) После загрузки перейдите в созданный каталог:
5.) Запустите скрипт установки, обязательно укажите свой домен, на который хотите выпустить SSL-сертификат:
./letsencrypt-auto —apache -d example.com
6.) Далее нужно будет указать свою электронную почту, согласиться с условиями выпуска сертификата и согласиться или отказаться от рассылки новостей.
7.) После этого вам нужно будет выбрать уровень защиты, мы рекомендуем устанавливать стандартный уровень, а настроить все необходимые редиректы самостоятельно.
8.) Все, сертификат теперь установлен на ваш сервер. Проверить работу SSL-сертификата можно по адресу:
Автообновление сертификата:
1) Если вы хотите вручную обновить все сертификаты, которые у вас установлены, то необходимо ввести команду:
Но сейчас появится сообщение, что сертификат не обновлен, так как только что выпущен. Нужно настроить cron.
2) Вводите команду и выбирайте редактор nano:
3) После того, как вы нажали Enter, откроется файл конфигурации, где нужно в конце дописать строчку:
30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log
Для выхода нажмите CTRL+X и подтвердите сохранение.
Теперь обновления будут проверяться утром каждого понедельника.
Как установить ssl сертификат на ubuntu
Сегодня мы расскажем, как установить купленный SSL сертификат на веб-сервер Apache под управлением Linux: Ubuntu, Debian или CentOS.
Файлы для установки SSL сертификата будут отображены в панели управления cloudlite (меню SSL):
.CA — файл цепочки сертификатов Центра Сертификации (Certificate Authority).
.CRT — файл сертификата для вашего сайта (сайтов).
Загрузить их на веб-сервер можно следующим образом:
Загрузите отображенные в панели файлы .ca и .crt на веб-сервер. Если ваш сервер не располагает графическим окружением рабочего стола, загрузите эти файлы сначала на другой компьютер, а затем перенесите их любым из описанных ниже способов.
Внимание: предполагается, что нужная для функционирования пара закрытый/открытый ключ генерируется на том же веб-сервере 1С-Битрикс, куда будет перенесен купленный сертификат. При условии создания ключей на другом компьютере необходимо дополнительно перенести файл закрытого ключа .key на Ваш веб-сервер, аналогично представленной ниже технологии копирования файлов сертификатов.
Перенос сертификатов с компьютера Linux/Mac OS:
Оптимальный вариант загрузки сертификатов на сервер – при помощи опции SCP, встроенной в возможность терминала компьютера:
Загрузите файлы .CA и .CRT из панели управления на локальный компьютер, потом откройте терминал и в папку, где были сохранены сертификаты (напр., Downloads):
скопируйте сертификаты Вашего сайта и Центра Сертификации на веб-сервер:
scp crt.crt ca.crt user@1.22.33.44:/etc/ssl
scp — команда копирования файлов
mydomain.ru_crt.crt — имя загруженного из панели файла сертификата Вашего веб-сайта
mydomain.ru_ca.crt — имя загруженного из панели файла сертификата Центра Авторизации
user — имя Вашего пользователя для подключения к серверу через ssh (часто используется root)
1.22.33.44 — IP-адрес Вашего веб-сервера
/etc/ssl — директория на удаленном сервере, куда планируется сохранить загружаемые файлы.
Как перенести сертификаты с компьютера Windows:
Скачайте и установите программу WinSCP.
Запустите WinSCP и в новом окне наберите данные, используемые для подключения к Вашему серверу по SSH.
В левой части окна программы отображены файлы на локальном компьютере, в правой — на удаленном сервере. Отметьте или создайте директорию, куда будете сохранять сертификаты, в правой части окна. Перенесите файлы .CA и .CRT в эту директорию из левой части окна.
Внимание: для Вашего удобства рекомендуем в дальнейшем перенести файл закрытого ключа (.key) в ту же директорию, где теперь расположены файлы сертификатов. Это необязательно, но в этом случае нужно запомнить путь до этого файла и в дальнейшем отметить его в файле конфигурации Apache вместо пути, приведенного в примере.
Если закрытый ключ .key Вы сгенерировали прямо на сервере, то для его копирования в другую директорию подойдет такая команда:
cp /home/root/private.key /etc/ssl/private.key
cp — команда копирования
/home/root/ — путь до файла ключа
private.key — имя файла ключа
/etc/ssl/private.key – путь копирования файла ключа
Удаление файла ключа из старого расположения производится командой:
Настраиваем веб-сервер Apache на использование SSL сертификата
После копирования файлов сертификата сайта и Центра Сертификации следует отрегулировать параметры Вашего веб-сервера Apache. Подключитесь к серверу по SSH от имени пользователя root и сделайте следующее:
Активируйте опцию SSL веб-сервером Apache:
yum install mod_ssl
Откройте файл конфигурации сайта, для которого вы устанавливается SSL сертификат.
Так, если параметры веб-сайта хранятся в файле /etc/apache2/sites-enabled/000-default.conf:
Внимание: На Ubuntu/Debian файлы параметров сайтов Apache стандартно расположены в директории /etc/apache2/sites-enabled/ . На CentOS — /etc/httpd/conf.d/
Чтобы найти нужную конфигурацию, используйте команду ls/директория/конфигурация (напр. ls /etc/apache2/sites-enabled), отображающую полный список файлов в указанной директории.
И с помощью команды nano можно открыть конкретный файл (напр. nano /etc/apache2/sites-enabled/000-default.conf). Проверить, что выбранный файл на самом деле является конфигурацией Вашего сайта, можно, найдя в нем строку ServerName. Ее значение должно соответствовать домену, для которого устанавливается SSL сертификат (напр. www.mydomain.ru)
Внимание для CentOS: при необходимости Вы можете установить редактор nano с помощью команды yum install nano
Добавьте указанные ниже параметры в открытый файл настроек:
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key
Здесь:
/etc/ssl/mydomain.ru_crt.crt — путь к файлу сертификата Вашего сайта
/etc/ssl/mydomain.ru_ca.crt — путь к файлу цепочки сертификатов Центра Сертификации (CA)
/etc/ssl/mydomain.ru_key.key — путь к файлу Вашего закрытого ключа
Внимание: если вы хотите, чтобы после установки SSL сертификата Ваш сайт был доступен только по безопасному протоколу https (порт 443), настройте файл его конфигурации аналогично примеру 1. Чтобы оставить сайт доступным по незащищенному протоколу http (порт 80), ориентируйтесь на пример 2.
Изменения отмечены жирным шрифтом.
Пример 1 (только HTTPS):
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request’s Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, . trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog $/error.log
CustomLog $/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with «a2disconf».
#Include conf-available/serve-cgi-bin.conf
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key
Пример 2 (HTTPS + HTTP):
1.
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request’s Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, . trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog $/error.log
CustomLog $/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with «a2disconf».
#Include conf-available/serve-cgi-bin.conf
SSLEngine on
SSLCertificateFile /etc/ssl/mydomain.ru_crt.crt
SSLCertificateChainFile /etc/ssl/mydomain.ru_ca.crt
SSLCertificateKeyFile /etc/ssl/mydomain.ru_key.key
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request’s Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.mydomain.ru
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, . trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog $/error.log
CustomLog $/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with «a2disconf».
#Include conf-available/serve-cgi-bin.conf
Теперь перезапустите сервис apache:
Если на Вашем сервере настроен файрвол iptables, разрешите входящие подключения по протоколу https (порт 443) для Вашего файрвола. Воспользуйтесь документацией к Вашей ОС, т.к. в разных дистрибутивах Linux работа с iptables реализуется различным образом. Например:
Для Ubuntu 16.04:
ufw allow 443/tcp
iptables -A INPUT -p tcp -m state —state NEW -m tcp —dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp —dport 443 -j ACCEPT
После установки SSL сертификата на веб-сервер Apache проверьте настройки. Откройте Ваш-веб сайт в браузере по протоколу HTTPS (например, https://mydomain.ru ) – при правильной установке в адресной строке браузера Вы увидите иконку замка, а при клике на нее отразится информация о купленном вами SSL сертификате.
Не нашли ответа на Ваш вопрос? Напишите нам!
sales@cloudlite.ru — вопросы по услугам, оплате, документам и партнерству
Установка сертификатов в ОС Ubuntu
В прошлой статье мы рассказали, что такое сертификаты в Ubuntu и какие задачи они выполняют. В этой статье поговорим о способах установки сертификатов, в частности расскажем об их установке в операционной системе.
Установка в ОС
Если вы захотите использовать подписанные сертификаты для включения поддержки HTTPS на веб-сервере, затем откроете такой веб-сайт с помощью браузера или сделаете к нему запрос в командной строке, систем вам выдаст ошибку SSL. В ней будет сказано, что этот сертификат не является доверенным и подключение к этому сайту может быть не безопасно.

Чтобы сертификат считался доверенным, в ОС необходимо добавить корневой сертификат центра сертификации, с помощью которого он был подписан в список доверенных. Если сертификат самоподписный, в список доверенных можно добавлять его самого.
У вас уже есть сертификат ca.crt., но как сделать так, чтобы ОС расценивала его как достоверный? Для этого скопируйте его в папку /usr/local/share/ca-certificates:
cp ./ca.crt /usr/local/share/ca-certificates/losstca.crt
Дальше нужно выполнить команду:

Затем нужно проверить что система воспринимает сертификат как доверенный выполнив команду curl:

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

Chrome, Firefox, Thunderbird используют nssdb для работы с сертификатами. Вы можете импортировать сертификаты как в графическом интерфейсе браузера, так и в терминале, используя программу certutil.
Установка сертификата SSL на Ubuntu с Apache
SSL сертификаты применяются веб-серверами для шифрования трафика между сервером и клиентом.
Зачем нужна установка сертификата SSL на веб-сайт:
- Позволяет устанавливать безопасное соединение между веб-сервером и клиентом. Особенно это актуально для сайтов, которые осуществляют платежи через интернет и оперируют другой чувствительной и конфиденциальной информацией пользователей.
- Позволяет сайту, защищенному сертификатом SSL, подняться в результатах выдачи Google.
Эта статья расскажет:
- Как бесплатно установить SSL сертификат на Ubuntu 16.04 с веб-сервером Apache.
- Также мы покажем, как сделать автоматическое обновление сертификата SSL с помощью сервиса cron.
- Воспользуемся сервисом Let’s Encrypt, который предоставляет бесплатные сертификаты, в отличие от других большинства сервисом, и позволяет легко установить их на сервер. Let’s Encrypt — это некоммерческая организация, которая предоставляет бесплатный, полностью автоматизированный и открытый CA (certificate authority — центр сертификации) сертификат.
Предварительные требования для того, чтобы успешно установить сертификат SSL по этой инструкции Вам необходимо:
- Установленный Ubuntu 16.04 сервер и доступ sudo user
- Установленный cron
- Установленный и правильно настроенный веб-сервер Apache с одним или несколькими доменами
Установка Let’s Encrypt делается в 4 шага
Шаг 1 — Установить необходимые программы зависимости для сервера
Обновим кэш менеджера пакетов, чтобы получить последние версии програмного обеспечения
sudo apt — get update
Установим git (распределённая система управления версиями) для того, чтобы скачать последнюю версию клиента Let’s Encrypt client:
sudo apt — get install git
Шаг 2 — Установка клиента Let’s Encrypt
Скачаем клиент Let’s Encrypt из официального репозитория и разместим его файлы на сервере.
Клонируем репозиторий Let’s Encrypt в папку /opt, которая является стандартной папкой для размещения в Linux программ сторонних производителей:
sudo git clone https : // github .com / letsencrypt / letsencrypt / opt / letsencrypt
Это создаст локальную копию официального репозитория Let’s Encrypt в папке /opt/letsencrypt.
Шаг 3 — Получение и установка SSL сертификата
Получение и установка SSL сертификата с помощью Let’s Encrypt довольно простая. Клиент Let’s Encrypt делает все автоматически и устанавливает новый SSL сертификат ,который валиден для доменов, указанных в качестве параметров.
Перейдем с папку letsencrypt:
cd / opt / letsencrypt
Для того, чтобы установить сертификат для одного домена, еобходимо запустить letsencrypt-auto со следующими параметрами (в качестве примера генерируется сертификат для сайта example.com):
sudo . / letsencrypt — auto — apache — d example .com
Если вы хотите установить один сертификат, который будет действовать для нескольких доменов или субдоменов, то необходимо перечислить их в качестве дополнительных параметров:
sudo . / letsencrypt — auto — apache — d example .com — d www .example .com
Рекомендуем делать именно этот вариант, чтобы потом иметь возможность перенаправлять запросы вида разных видов на единственный домен https://example.com, который будет указан в качестве основного в поисковых системах:
- http://example.com
- http://www.example.com
- https://example.com
- https://www.example.com
Во время установки программа предложит ввести опции:
— email для восстановления сертификатов и уведомлений
— выбрать вариант настройки сервера Easy при котором возможен доступ как незащищенный http, так и защищенный https или вариант Secure, при котором веб сервер будет настроен только на работу с защищенным доступом https (мы рекомендуем именно второй вариант)
Когда установка завершится, вы сможете найти сгенерированные сертификаты в папке /etc/letsencrypt/live. Чтобы проверить статус вашего SSL сертификата и его работу на сервере, воспользуйтесь сервисом https://www.ssllabs.com/ssltest/
Шаг 4 — Установка автообновления
Сертификаты Let’s Encrypt действительны на протяжении 90 дней. Однако рекомендуется обновлять их каждые 60 дней, чтобы не пропустить срок. У клиента Let’s Encrypt есть команда, которая позволяет обносить сертификат, если до истечения срока его валидности меньше 30 дней. Это позволяет сделать команда: