Перейти к содержимому

Как установить ssl сертификат на ubuntu

  • автор:

Установка SSL-сертификата на Apache

Настройка HTTPS на Apache и установка SSL необходима, чтобы обеспечить защиту данных пользователей на вашем веб-сайте. В инструкции ниже описана установка SSL-сертификата Comodo, GlobalSign и других, предоставляемых Рег.ру, и установка SSL, заказанных в других компаниях.

Активный SSL-сертификат

Перед установкой SSL-сертификата от Рег.ру перейдите к списку услуг и убедитесь, что услуга SSL-сертификата активна (значок зелёного цвета):

Установка SSL

После выпуска SSL на ваш контактный e-mail придёт письмо с данными для его установки, это:

  • сам сертификат;
  • корневой сертификат;
  • промежуточный сертификат.

Приватный ключ обычно генерируется при заказе SSL и сохраняется на ваш локальный ПК.

Установка на Ubuntu/Debian

Перед установкой SSL на Ubuntu/Debian необходимо включить модуль mod_ssl с помощью команды: a2enmod ssl .

Чтобы установить SSL:

  • domain_name.crt — сам сертификат;
  • private.key — приватный ключ;
  • chain.crt — цепочка сертификатов, которая содержит сначала промежуточный сертификат и следом за ним корневой (с новой строки без пробелов и пустых строк).
  • для CentOS: /etc/httpd/conf/httpd.conf;
  • для Debian/Ubuntu: /etc/apache2/apache2.conf;
  • если вы устанавливаете SSL-сертификат на OpenServer, используйте путь к его корневой папке. В конце файла создайте копию блока «VirtualHost». Укажите для блока порт 443 и добавьте внутри него строки:
SSLEngine on SSLCertificateFile /etc/ssl/domain_name.crt SSLCertificateKeyFile /etc/ssl/private.key SSLCertificateChainFile /etc/ssl/chain.crt

Установка SSL-сертификата на Apache 2

Пример конфигурационного файла:

Проверьте конфигурацию Apache до перезапуска командой: apachectl configtest

Готово, вы настроили SSL-сертификат. Теперь настройте переадресацию для вашего сайта.

Настройка HTTPS на Apache

После установки SSL настройте редирект с HTTP на HTTPS. Редирект для Apache настраивается через файл .htaccess.

Чтобы осуществить переадресацию добавьте в конце файла .htaccess следующие строки:

RewriteEngine On RewriteCond % !^443$ RewriteRule .* https://%% [R=301,L]

Подробнее про редирект через .htaccess вы можете узнать в статье: Редирект через .htaccess.

Проверка установленного SSL

Вы можете проверить корректность установки SSL-сертификата по инструкции: Как проверить правильность установки SSL-сертификата?

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

Помогла ли вам статья?

Спасибо за оценку. Рады помочь ��

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

Сертификаты SSL используются для обеспечения безопасности в различных сферах. Самая распространенная — это просмотр веб-сайтов по протоколу HTTPS. Существует небольшое количество доверенных корневых сертификатов организаций, которые подписывают остальные сертификаты для всех сайтов. Эти доверенные сертификаты хранятся на каждом компьютере или смартфоне. И именно исходя из этого веб-браузер может понимать, что тому или иному сайту можно доверять.

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

Table of Contents

  • Что нам понадобится?
  • Установка сертификатов в Ubuntu
    • 1. Установка в системе
    • 2. Установка в Google Chrome
    • 3. Установка в Firefox

    Что нам понадобится?

    Я хочу показать на примере как сделать сертификат доверенным в Ubuntu. Для этого можно создать свой центр сертификации CA с помощью EasyRSA, создать и подписать SSL сертификат, как это описано в статье про создание сертификатов OpenSSL. Далее использовать этот сертификат для домена localhost в Apache. Таким образом у вас получится три файла:

    • ca.crt — корневой сертификат центра сертификации;
    • localhost.crt — сертификат сайта подписанный центром сертификации;
    • localhost.key — ключ сертификата сайта.

    Активируйте файл виртуального хоста Apache для сайта по умолчанию с помощью такой команды:

    sudo a2ensite default-ssl

    Далее откройте этот файл и найдите такие строки:

    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    Для параметра SSLCertificateFile надо передать путь к сертификату сайта, например, localhost.crt, а для SSLCertificateKeyFile — ключу сертификата сайта. Например, localhost.key. Если сертификаты находятся в папке /etc/apache/ssl, то конфигуация будет выглядеть вот так:

    SSLCertificateFile /etc/apache/ssl/localhost.crt
    SSLCertificateKeyFile /etc/apache/ssl/localhost.key

    После этого нужно перезапустить Apache:

    sudo systemctl restart apache2

    Теперь у вас всё готово для того чтобы выполнить всё описанное ниже в своей системе.

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

    1. Установка в системе

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

    curl -I https://localhost

    Для того чтобы сертификат считался доверенным в системе нужно добавить корневой сертификат центра сертификации, с помощью которого он был подписан в список доверенных. Если это самоподписанный сертификат, то в список доверенных можно добавлять его самого.

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

    2. Установка в Google Chrome

    Для того чтобы добавить сертификат в Google Chrome или Chromium в графическом интерфейсе откройте настройки из главного меню:

    Перейдите в Конфиденциальность и безопасность -> Безопасность -> Настроить сертификаты:

    В открывшемся окне перейдите на вкладку Центры сертификации:

    Здесь необходимо нажать кнопку Импорт и выбрать файл корневого сертификата:

    Далее надо настроить параметры доверия. Поскольку сейчас сертификат будет использоваться для подтверждения подлинности сайтов, то можно оставить только первый пункт:

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

    В командной строке всё тоже довольно просто. Для работы с сертификатами вам понадобится пакет libnss3-tools, установите его с помощью команды:

    sudo apt install libnss3-tools

    База данных сертификатов Google Chrome находится в папке ~/.pki/nssdb. Вы можете посмотреть доступные сертификаты командой:

    certutil -d ~/.pki/nssdb -L

    Синтаксис команды для добавления сертификата следующий:

    $ certutil -d путь/к/базе/данных -A -t «настройки_доверия» -n «имя» -i «/путь/к/файлу»

    Обратите внимание на настройки доверия. Существует три группы атрибутов доверия:

    • Для SSL;
    • Для Email;
    • Для программного обеспечения и других объектов.

    Каждая из групп может содержать такие атрибуты:

    • p — валидный пир;
    • P — доверенный пир;
    • c — валидный центр сертификации;
    • C — доверенный центр сертификации;
    • T — доверенный центр сертификации для авторизации клиентов.

    Для SSL сертификатов можно достаточно такой последовательности «TC,,». То есть атрибуты T и C для SSL и ничего для всего остального. Вся команда для импорта ca.crt будет выглядеть вот так:

    certutil -d sql:~/.pki/nssdb -A -t «TC,,» -n «Losst CA» -i ./ca.crt

    После этого вы снова можете посмотреть список сертификатов для того чтобы убедится что всё хорошо:

    certutil -d sql:~/.pki/nssdb -L

    Сертификат есть и после этого браузер будет считать его доверенным. Сертификаты добавленные в графическом интерфейсе тоже добавляются сюда. Теперь вы знаете как выполняется установка корневых сертификатов Ubuntu.

    3. Установка в Firefox

    В Firefox всё немного сложнее. Тут нет централизованного хранилища сертификатов, а поэтому их придется добавлять для каждого профиля отдельно, что в графическом интерфейсе, что в командной строке. Для того чтобы добавить сертификат в графическом интерфейсе откройте Настройки в главном меню:

    Далее перейдите в раздел Защита и безопасность и найдите там пункт Сертификаты. Здесь надо нажать кнопку Посмотреть сертификаты:

    В открывшемся окне перейдите на вкладку Центры сертификации и нажмите кнопку Импортировать, для того чтобы добавить свой сертификат. Далее выберите файл сертификата и установить настройки доверия. Нужно отметить как минимум первую галочку — Доверять при идентификации веб-сайтов:

    На этом установка SSL сертификата в Firefox завершена. Если вы хотите добавить сертификат в командной строке, то необходимо добавить его во все профили. Профили находятся в папке ~/.mozilla/firefox/. В данном примере, есть два профиля и только один из них заполнен:

    Файлы nssdb находятся прямо в папке профиля, поэтому можно просто передать эту папку в certutil. Например, для просмотра списка сертификатов выполните:

    certutil -d ~/.mozilla/firefox/k9z8sttc.default-release/ -L

    Для добавления сертификата используйте такую команду подставив свой путь к папке профиля:

    certutil -d ~/.mozilla/firefox/k9z8sttc.default-release/ -A -t «TC,,» -n «Losst» -i ./ca.crt

    После этого полученный сертификат появится в списке.

    Обратите внимание, что такой способ работает для Firefox, установленного как .deb пакет. Если у вас Firefox, установленный с помощью пакетного менеджера snap, то этот метод может не работать.

    Для Firefox есть ещё один способ добавить сертификаты из системы автоматически без использования certutil. Это загрузка сертификатов с помощью политики. Возможно вы слышали про опцию security.enterprise_roots.enabled в about:config. Она работает только в Windows и MacOS но не в Linux. Однако, можно создать файл политики папке /usr/lib/firefox/distribution/ и там прописать какие сертификаты следует загрузить. По умолчанию Firefox будет искать сертификаты таких каталогах:

    • /usr/lib/mozilla/certificates
    • /usr/lib64/mozilla/certificates
    • ~/.mozilla/certificates

    В самом файле надо указать имена файлов сертификатов если они находятся в одной из этих папок или полный путь к ним. Например, скопируйте сертификат CA в папку /usr/lib/mozilla/certificates:

    cp ~/easy-rsa-ca/ca.crt /usr/lib/mozilla/certificates/losst.crt

    Поддерживаются как ASCII сертификаты (CRT/PEM), так и двоичные (DER). Затем создайте файл политики со следующем содержимым:

    sudo vi /usr/lib/firefox/distribution/policies.json

    Перезапустите браузер и после этого Firefox должен начать видеть ваш сертификат.

    Выводы

    В этой статье мы рассмотрели как установить сертификаты в Ubuntu, а также как добавить их в самые популярные браузеры. Как видите, универсального решения, не существует, но всё можно настроить.

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

    Хостинг Linux от 9 рублей в месяц VPS Linux всего за 89 рублей в месяц

    Перед началом установки сертификата вам нужно соблюсти несколько условий:

    а) У вас должен быть установлен Apache. Вот инструкция по установке.

    б) У вас должен быть настроен виртуальный хост. Вот инструкция по настройке.

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

    1.) Обновите индекс пакетов:

    sudo apt-get update -y

    2.) Установите git для загрузки Let’s Encrypt:

    sudo apt-get install git -y

    установка let

    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

    настройка домена для let

    6.) Далее нужно будет указать свою электронную почту, согласиться с условиями выпуска сертификата и согласиться или отказаться от рассылки новостей.

    условия использования бесплатного ssl-сертификата

    7.) После этого вам нужно будет выбрать уровень защиты, мы рекомендуем устанавливать стандартный уровень, а настроить все необходимые редиректы самостоятельно.

    настройки let

    8.) Все, сертификат теперь установлен на ваш сервер. Проверить работу SSL-сертификата можно по адресу:

    провека работы ssl-сертификата на vps

    let

    Автообновление сертификата:

    1) Если вы хотите вручную обновить все сертификаты, которые у вас установлены, то необходимо ввести команду:

    Но сейчас появится сообщение, что сертификат не обновлен, так как только что выпущен. Нужно настроить cron.

    2) Вводите команду и выбирайте редактор nano:

    3) После того, как вы нажали Enter, откроется файл конфигурации, где нужно в конце дописать строчку:

    30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log

    Для выхода нажмите CTRL+X и подтвердите сохранение.

    Теперь обновления будут проверяться утром каждого понедельника.

    Установка SSL-сертификата на Apache (Linux)

    Консультация по продукту 1cloud

    ca-crt-1cloud-panel

    После генерации CSR-запроса и заказа SSL-сертификата через панель управления 1cloud необходимо установить полученные сертификаты .CRT и .CA на сервер. Эта пошаговая инструкция поможет вам установить приобретенный SSL-сертификат на веб-сервер Apache под управлением Linux: Ubuntu, Debian или CentOS. После получения SSL-сертификата файлы для его установки появятся в панели управления 1cloud (меню SSL):
    .CA — файл цепочки сертификатов Центра Сертификации (Certificate Authority).
    .CRT — файл сертификата для вашего сайта (сайтов).

    Загрузка необходимых файлов на веб-сервер

    Прежде всего, необходимо загрузить представленные в панели 1cloud файлы .ca и .crt на веб-сервер. Если ваш сервер не имеет графического окружения рабочего стола, вы можете загрузить эти файлы на другой компьютер, а затем перенести их одним из приведенных ниже способов. Примечание: подразумевается, что необходимая для работы пара закрытый/открытый ключ была сгенерирована на том же веб-сервере, на который вы будете переносить приобретенный сертификат. Если вы создавали ключи на другой машине, вам необходимо также перенести файл закрытого ключа .key на ваш веб-сервер по аналогии с описанной ниже процедурой копирования файлов сертификатов.

    Перенос сертификатов с компьютера Linux/Mac OS:

    1. Загрузите файлы .CA и .CRT из панели управления 1cloud на локальный компьютер.
    2. Откройте терминал и перейдите в папку, в которую вы сохранили сертификаты (напр., Downloads):
      cd ~/Downloads
      Скопируйте сертификаты вашего сайта и Центра Сертификации на веб-сервер:
      scp crt.crt ca.crt user@1.22.33.444:/etc/ssl
      Где:
      scp — команда копирования файлов
      mydomain.ru_crt.crt — имя загруженного из панели файла сертификата вашего веб-сайта
      mydomain.ru_ca.crt — имя загруженного из панели файла сертификата Центра Авторизации
      user — имя вашего пользователя для подключения к серверу через ssh (часто используется root)
      1.22.33.444 — IP-адрес вашего веб-сервера
      /etc/ssl — директория на удаленном сервере, в которую в хотите сохранить загружаемые файлы.

    Перенос сертификатов с компьютера Windows:

    1. Установите программу WinSCP. Скачать ее можно здесь.
    2. Запустите 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 — путь, по которому необходимо скопировать файл ключа

    Удалить файл ключа из старого расположения вы можете с помощью команды:
    rm /home/root/private.key
    (синтаксис команды аналогичен предыдущему примеру)

    Настройка веб-сервера Apache на использование SSL-сертификата

    После копирования файлов сертификата сайта и Центра Сертификации необходимо отредактировать параметры вашего веб-сервера Apache. Для этого подключитесь к вашему серверу по SSH от имени пользователя root и выполните следующие операции:

    1. Активируйте использование опции SSL веб-сервером Apache:
      Ubuntu/Debian:
      a2enmod ssl
      CentOS:
      yum install mod_ssl
    2. Откройте файл конфигурации сайта, для которого вы хотите установить SSL-сертификат.
      Например, если параметры веб-сайта хранятся в файле /etc/apache2/sites-enabled/000-default.conf:
      nano /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
    3. Добавьте приведенные ниже параметры в открытый файл конфигурации:
      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.
    Вносимые изменения выделены жирным шрифтом.

    Проверка настроек

    На этом процедура установки SSL-сертификата на веб-сервер Apache завершена. Для проверки корректности настроек откройте откройте ваш-веб сайт в браузере по протоколу HTTPS (например, https://mydomain.ru). Если сертификат установлен корректно, в адресной строке вашего браузера вы увидите иконку замка, при клике на которую будет отображена информация о приобретенном вами SSL-сертификате.

    P. S. Другие инструкции:

    • Настройка Apache, PHP, MySQL на WampServer
    • Создание SSL-сертификата для Apache на Ubuntu 12.04
    • Установка SSL-сертификата на Nginx (Linux)

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

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

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