Предисловие
Недавно я искал ssl сертификат для своего сайта но на Хабре было только инструкция для StartSSl который уже не поддерживают Google Chrome и MozilaFirefox. И здесь я бы хотел показать как сделать сертификат пошагово на собственном сервере.
Итак начнем
Создадим папку для 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
ссылка на оригинал статьи https://habrahabr.ru/post/324740/
Добавить комментарий