Nginx Apache SSL настройка

Серверы Зотиков Сергей

SSL-сертификат – это круто, модно, а еще безопасно, и его рекомендует использовать Google. Сегодня я опишу, как установить SSL-сертификат на свой сервер с apache + nginx.

Для начала сертификат нужно купить. Я это сделал у своего любимого хостера, обошелся он мне всего в 400 ₽. На Хабре есть описание, как получить сертификат бесплатно, но, поверьте, проще его купить.

Купил я самый дешевый SSL-сертификат Comodo PositiveSSL и после оплаты получил набор из 4 файлов:

AddTrustExternalCARoot.crt
COMODORSAAddTrustCA.crt
COMODORSADomainValidationSecureServerCA.crt
www_myitstuff_ru.crt - сертификат для моего домена

Приватный ключ был выдан отдельно, его нужно сохранить в текстовый файл, я его назвал:

www_myitstuff_ru_private.key

В настройках сервера потребуется указать путь к цепочке сертификатов, для создания цепочки сертификатов запустите консоль сервера или зайдите в неё через PuTTY, перейдите в каталог с сертификатами и выполните команду:

$cat www_myitstuff_ru.crt COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > myitstuff_ru.ca-bundle

В результате выполнения этой команды в каталоге будет создан файл myitstuff_ru.ca-bundle с цепочкой сертификатов.

Сертификаты есть, цепочку создали, осталось указать их в настройках сервера (apache + nginx):

  1. Проверьте, какой веб-сервер работает на 443 (SSL) порту, для этого в терминале введите команду:

для Linux:

$netstat -napt | grep 443

для FreeBSD:

$sockstat | grep 443
  1. Если на 443 порту висит apache, то зайдите в файл:
/etc/apache2/ports.conf

Закомментируйте строку:

Apache
Listen 443
  1. Так как ssl-соединениями будет заниматься nginx, то настройки производятся только в его конфиге:
/etc/nginx/sites-available/myitstuff.ru

Настройки Nginx для работы с SSL:

nginx
# Настраиваем редирект с http на https
server {
    listen 80;
    root /home/myitstuff/myitstuff.ru/public_html; # путь к папке с сайтом
    server_name myitstuff.ru www.myitstuff.ru; # доменные имена
    return 301 https://myitstuff.ru$request_uri; # непосредственно редирект на https
}

server {
    listen 443 ssl; # включаем поддержку ssl
    server_name myitstuff.ru www.myitstuff.ru;

    ssl_certificate /etc/ssl/crt/myitstuff_ru.ca-bundle; # файл цепочки сертификатов
    ssl_certificate_key /etc/ssl/crt/www_myitstuff_ru_private.key; # приватный ключ

    # ......... остальные настройки .........
}
  1. Перезагрузите apache и nginx:
$/etc/init.d/apache2 restart
$/etc/init.d/nginx restart
  1. Проверьте правильность установки сертификата на сайте www.sslshopper.com/ssl-checker.html

Если все сделали верно, то увидите примерно следующее:

Комментарии

Поддерживаются `код`, **жирный**, *курсив* и блоки кода

Как оформить
ПишетеПолучится
`npm install`код в строке: npm install
```bash
npm install
npm run build
```
блок кода: три обратные кавычки — отдельной строкой до и после кода; язык подсветки (bash, php, sql) — по желанию, сразу после первых кавычек
**важно**важно
*термин*термин
https://example.comссылка: адрес достаточно вставить как есть
Наверх