Предисловие
Недавно я искал 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.confsudo 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 .wellknowncd .wellknownmkdir acme-challengecd acme-challengeСтавим туда файл и нажимаем Download SSl Certificate. Скачиваем zip с сертификатами и загружаем на сервер в папку ssl в корне. Зайдем в папку и переименуем:
cd /sslmv certificate.crt crt.crtmv private.key key.keyИ сохраняем. Проверяем конфиги:
apachectl configtestОсталось только перезапустить сервер и сайт готов.
/etc/init.d/apache2 restartПоделиться с друзьями
Комментарии (14)

ertaquo
23.03.2017 22:06+5Простите, но зачем нужна эта статья?
sslforfree.com по сути является клиентом Let's Encrypt, а у Let's Encrypt есть официальная утилита Certbot. Эта утилита вполне умеет работать с Apache и nginx (хоть и несколько кривовато, имхо).
Так что способ получения бесплатного SSL-сертификата в 2017 году — это зайти на https://certbot.eff.org/ и следовать написанной там инструкции.

Incognito4pda
23.03.2017 23:29-6Опять 25! Делайте сразу мануал и для nginx, не все любят этот apache!

SimSonic
28.03.2017 22:13Всё хочу заставить себя написать про то же самое и Cherokee, неплохой имхо вебсервер)) весьма нестандартно, по крайней мере…

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

nikitasius
А на кой черт идти на 3й сайт, когда можно все сделать с сервера через «certbot certonly»?
ky0
Не говорите… ирония заголовка прямо-таки стекает через край экрана на стол :)
arsden2
Ето моя первая статья плюс я не знал о certbot certonly.
Мне было так удобнее поскольку достаточно много времени я угробил на сертификацию сайта на своем сервере.