Проект Эйлера блог
Ссылка на github

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

Браузеры помечают сайты без HTTPS как «небезопасные». Чтобы сайт работал через HTTPS необходимо установить SSL-сертификат.

Файлы сертификата в Timeweb

SSL-сертификат я покупал в Timeweb:

Когда сертификат будет выпущен, можно скопировать содержимое его файлов.

Файлы сертификата на сервере

Создать на сервере папки:

mkdir -p /opt/lampp/etc/ssl.crt
mkdir -p /opt/lampp/etc/ssl.key

Создать файл сертификата:

vim /opt/lampp/etc/ssl.crt/project-euler.ru.crt

Вставить в него содержимое сертификата (включая строки -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----).

Создать файл ключа:

vim /opt/lampp/etc/ssl.key/project-euler.ru.key

Вставить в него содержимое ключа (включая строки -----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY-----).

Установить права доступа:

chmod 644 /opt/lampp/etc/ssl.crt/project-euler.ru.crt
chmod 600 /opt/lampp/etc/ssl.key/project-euler.ru.key

Настройка виртуального хоста для HTTPS

Перейти в файл:

vim /opt/lampp/etc/extra/httpd-vhosts.conf

Добавить в конец файла:

<VirtualHost *:443>
    ServerName project-euler.ru
    ServerAlias www.project-euler.ru
    DocumentRoot "/opt/lampp/htdocs/project-euler-website"

    <Directory "/opt/lampp/htdocs/project-euler-website">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile "/opt/lampp/etc/ssl.crt/project-euler.ru.crt"
    SSLCertificateKeyFile "/opt/lampp/etc/ssl.key/project-euler.ru.key"

    ErrorLog "/opt/lampp/logs/project-euler-ssl-error.log"
    CustomLog "/opt/lampp/logs/project-euler-ssl-access.log" combined
</VirtualHost>

Настроить перенаправление с HTTP на HTTPS, для чего изменить блок для порта 80:

<VirtualHost *:80>
    ServerName project-euler.ru
    ServerAlias www.project-euler.ru
    Redirect permanent / https://project-euler.ru/
</VirtualHost>

Включить SSL-модуль в Apache

vim /opt/lampp/etc/httpd.conf

Раскомментировать строку:

LoadModule ssl_module modules/mod_ssl.so

Проверка

Перезапуск Apache:

/opt/lampp/lampp restart

Проверка в командной строке:

curl -k https://project-euler.ru/

Должно вернуться содержимое index файла.

Проверка в браузере:

https://project-euler.ru

Теперь должен появиться замочек — соединение защищено.