Делаем бесплатный SSL сертификат в 2017 году

Предисловие


Недавно я искал ssl сертификат для своего сайта но на Хабре было только инструкция для StartSSl который уже не поддерживают Google Chrome и MozillaFirefox. И здесь я бы хотел показать как сделать сертификат пошагово на собственном сервере.

Итак начнем


Создадим папку для ssl в корне.

mkdir /ssl

Далее зайдем в конфиги Apache

cd /etc/apache2/sites-available

Скачаем пример конфига.

sudo wget https://linode.com/docs/assets/apache2-roundcube.sample.conf

Поменяем владельца на root и права.

sudo chown root:root apache2-roundcube.sample.conf

sudo chmod 644 apache2-roundcube.sample.conf

И редактируем.

nano apache2-roundcube.sample.conf

В теге <VirtualHost *:80> и <VirtualHost *:443>
ServerAdmin меняем на webmaster@названиесайта.
ServerName меняем на название сайта.
DocumentRoot меняем на директорию где лежит сайт, у меня это:

/var/www/html/

Все теги Directory удаляем кроме:

<Directory /var/www/roundcube>...</Directory>

здесь меняем путь вместо /var/www/roundcube /var/www/html. И меняем путь к SSL сертификатам:

  SSLCertificateFile /etc/apache2/ssl/webmail.example.com/apache.crt

  SSLCertificateKeyFile /etc/apache2/ssl/webmail.example.com/apache.key

на

  SSLCertificateFile /ssl/crt.crt

  SSLCertificateKeyFile /ssl/key.key

Пример конфига:


# Apache2 vhost configuration sample for Roundcube
# https://linode.com/docs/email/clients/installing-roundcube-on-ubuntu-14-04/
<VirtualHost *:80>
  # Virtual host configuration + information (replicate changes to *:443 below)
  ServerAdmin webmaster@uranius.pp.ua
  ServerName uranius.pp.ua
  DocumentRoot /var/www/html/
  # ErrorLog /var/log/apache2/webmail.example.com/error.log
  # CustomLog /var/log/apache2/webmail.example.com/access.log combined
  # Permanently redirect all HTTP requests to HTTPS
  RewriteEngine on
  RewriteCond %{SERVER_PORT} !^443$
  RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]
</VirtualHost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
  # Virtual host configuration + information (replicate changes to *:80 above)
  ServerAdmin webmaster@uranius.pp.ua
  ServerName uranius.pp.ua
  DocumentRoot /var/www/html
  # ErrorLog /var/log/apache2/webmail.example.com/error.log
  # CustomLog /var/log/apache2/webmail.example.com/access.log combined
  # SSL certificate + engine configuration
  SSLEngine on
  SSLCertificateFile /ssl/crt.crt
  SSLCertificateKeyFile /ssl/key.key
  # Roundcube directory permissions + restrictions
  <Directory /var/www/html/>
    Options -Indexes
    AllowOverride All
  </Directory>
</VirtualHost>
</IfModule>

Переименуем файл

sudo mv apache2-roundcube.sample.conf uranius.pp.ua.conf

Отключем не нужные конфиги

sudo a2dissite 000-default.conf default-ssl.conf

Включаем необходимые модули.

sudo a2enmod deflate expires headers rewrite ssl

Включаем конфиг сайта.

a2ensite uranius.pp.ua.conf

А теперь самое интересное, получим сертификат. Идем на www.sslforfree.com. Вводим доменное имя и нажимаем получить. Далее скачиваем файл и загружаем его на сервер. Идем в папку, где лежит сайт и создаем директорию:

cd /var/www/html/

mkdir .wellknown

cd .wellknown

mkdir acme-challenge

cd acme-challenge

Ставим туда файл и нажимаем Download SSl Certificate. Скачиваем zip с сертификатами и загружаем на сервер в папку ssl в корне. Зайдем в папку и переименуем:

cd /ssl

mv certificate.crt crt.crt

mv private.key key.key

И сохраняем. Проверяем конфиги:

apachectl configtest

Осталось только перезапустить сервер и сайт готов.

/etc/init.d/apache2 restart
  • –38
  • 69,2k
  • 16
Поделиться публикацией
Комментарии 16
    +9
    А теперь самое интересное, получим сертификат. Идем на www.sslforfree.com. Вводим доменное имя и нажимаем получить. Далее скачиваем файл и загружаем его на сервер. Идем в папку, где лежит сайт и создаем директорию

    А на кой черт идти на 3й сайт, когда можно все сделать с сервера через «certbot certonly»?
      0
      Не говорите… ирония заголовка прямо-таки стекает через край экрана на стол :)
        –4
        Ето моя первая статья плюс я не знал о certbot certonly.
        Мне было так удобнее поскольку достаточно много времени я угробил на сертификацию сайта на своем сервере.
        +5
        Простите, но зачем нужна эта статья?
        sslforfree.com по сути является клиентом Let's Encrypt, а у Let's Encrypt есть официальная утилита Certbot. Эта утилита вполне умеет работать с Apache и nginx (хоть и несколько кривовато, имхо).
        Так что способ получения бесплатного SSL-сертификата в 2017 году — это зайти на https://certbot.eff.org/ и следовать написанной там инструкции.
          0
          Согласен, но повторюсь я не знал о существовании certbot'а.
          Но таким способом можна настроить необходимую папку для сайта и вапще сконфигурировать что надо.
          +22

          Серьезно? Не стыдно такое на заборе размещать?

            +2

            Хабре*
            Чертова автозамена… :D

              +5

              Ну, на заборе и не такое пишут, так-то...

              –6
              Опять 25! Делайте сразу мануал и для nginx, не все любят этот apache!
                0
                Для него их 100500 штук написали уже, на гугле забанили?
                  0
                  Всё хочу заставить себя написать про то же самое и Cherokee, неплохой имхо вебсервер)) весьма нестандартно, по крайней мере…
                  –1

                  Здесь был коммент про приватные ключи, однако если на самом деле «we generate a private key in your browser», то это уже интересно

                    0
                    стоит так-же утонить, что сертификат выдают сроком на:
                    image
                      0

                      И правильно делают. Ставить и обновлять его руками — глупость. Правильно использовать любой клиент, поддерживающий протокол ACME и обновлять автоматически.

                      0
                      del
                        –1
                        Хотелось бы ответить на все эти негативные коментарии, конечно можна сделать это автоматически, но статья написана как инструкция для ручной установки сертификата.
                        И есть несколько людей которые писали мне в лс и благодарили, так что, думаю, моя работа не пошла напрасно.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое