Page 1 of 3

Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Sat Feb 04, 2017 11:51 pm
by LAlf
Когда первый раз ставил весту - дико замучился гуглить и искать как правильно прикрутить CloudFlare. Поэтому решил заполнить этот пробел, чтобы людям не бегать как мне по форуму и не искать инфу по разным топикам.


0. Нужный домен УЖЕ должен быть добавлен в CloudFlare (у регистратора должны быть прописаны выданные CloudFlare неймсервера NS и домен должен пройти делегацию) + в CloudFlare в разделе DNS УЖЕ должны быть A-записи, указывающие на сервер с Vesta.

1. Добавляем домен в весте, НЕ ставим галочку напротив "SSL Support" в "ADVANCED OPTIONS" (вывалится ошибка в случае если вы не правильно заполните поля - будет что-то не так, не помню что - но что-то криво активируется, я переставлял систему и весту из-за этого в первый раз - у меня там как-то по-особенному галочки были выбраны что ли).

2. Заходим в редактирование домена ( https://ip_сервера:8083/edit/web/?domain=доменное_имя ), тыкаем "SSL Support" и видим 3 поля для заполнения:
- SSL Certificate
- SSL Key
- SSL Certificate Authority / Intermediate (optional)

3. Заходим в CloudFlare в раздел Crypto ( https://www.cloudflare.com/a/crypto/доменное_имя ), далее блок "Origin Certificates" и нажимаем "Create Certificate", там ничего менять не надо, но на всякий случай укажу что там пишется (вдруг со временем они что-то поменяют):
- Выбрать: "Let Cloudflare generate a private key and a CSR"
- Private key type: RSA
- List the hostnames: *.доменное_имя, доменное_имя
- Certificate Validity: 15 years

4. В CloudFlare нажимаете "Next" и получаете сгенерированные сертификаты. Выбираете "Key format: PEM (Default)" и копируйте сертификаты из CF в Vesta:
- "Origin Certificate" вставляете в поле "SSL Certificate"
- "Private key" вставляете в поле "SSL Key"
- Чтобы всё заработало - надо в VestaCP заполнить ещё 3е поле "SSL Certificate Authority", ключ туда НУЖНО взять вот отсюда (брать "CloudFlare Origin CA — RSA Root") - именно его тут во всех топиках дают, но без ссылок на первоисточники.

5. В панели весты в настройках домена нажать Save. НЕ должно вывалиться НИКАКИХ ошибок. И потом если зайти снова на страницу редактирования, то под всеми заполненными полями будет написано:
Image

6. В настройках домена в КлаудФларе в разделе Crypto в блоке "SSL" нужно выбрать что угодно КРОМЕ "OFF".

7. Всё. Ваш сайт должен открываться по протоколу https. (Если нет - проверяйте в https://www.ssllabs.com/ssltest/ с очисткой кеша (там есть ссылка отдельная после проверки), если чекали ранее)

----------------------------------------------------------------------------------------

А теперь после такой полезной инструкции, где всё собрано в одно место - у меня есть вопрос. Который тоже другим будет полезен в рамках этого разговора.

Как сделать, чтобы на одной VPS с одним IP с использованием VestaCP, можно было на нескольких доменах использовать HTTPS(SSL) от CF?

В данный момент у меня такая ситуация. Неделю назад взял минимальный VPS на DigitalOcean, поставил туда Ubuntu 16.04, сделал update&upgrade, поставил весту (последнюю) следующей командой:

Code: Select all

curl -O http://vestacp.com/pub/vst-install.sh
bash vst-install.sh --nginx yes --phpfpm yes --apache no --vsftpd yes --proftpd no --exim no --dovecot no --spamassassin no --clamav no --named no --iptables no --fail2ban no --mysql no --postgresql no --remi no --quota no --hostname pechenka --email [email protected] --force
Добавил туда домен с SSL от CF. Сейчас потребовалось добавить второй домен с SSL, но после выполнения всех вышеприведенных инструкций я получаю (инфа о сертификате появляется при клике на NET::ERR_CERT_AUTHORITY_INVALID):
Image

Пробовал ребутить nginx, думал что-то не подцепилось - бесполезно.

Нагуглил, что это распространенная ошибка и она из-за того, что на один IP я пытаюсь привязать несколько SSL сертификатов (бред какой-то). Вот тут советуют поменять конфиги в nginx, но по сути - то, что там написано и так уже прописано в:

Code: Select all

/home/admin/conf/web/snginx.conf
Но! Именно там оба домена прописаны и у них одинаковые IP ("listen").
Поэтому я не понимаю зачем создавать ещё один конфиг, где будет прописан для ip один сертификат (или там сразу для обоих доменов разве нужно писать?).

Где я всё таки накосячил? Или где-то в весте стоит какое-то ограничение для бОльшей безопасности?

PS: домен, к сожалению, не могу в открытую написать. Могу в личку скинуть, если есть уверенность, что это поможет делу.
PPS: добавил третий домен и... всё ок с ним, а во втором всё так же ошибка. Мда. Может в CF что-то не верно отметил?

Re: VestaCP и HTTPS (SSL) от CloudFlare. Инструкция. Проблема со вторым доменом

Posted: Sun Feb 05, 2017 10:05 pm
by LAlf
Судя по тому, что я сегодня увидел - я сам ошибся и сделал косяк. Я несколько дней назад поменял NS сервера у второго домена, то есть перенес его от CloudFlare. И забыл. А письмо о смене NS и отключение домена в CF пришло только сейчас. Из-за этого скорее всего и была проблема с ним. Сейчас сменю обратно на CF и буду надеяться, что всё будет ок.

upd: всё стало ок. Так что инструкция выше - работающая на 100%.

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Thu Feb 09, 2017 9:08 am
by skurudo
Полезная тема, слегка изменил название темы и прикрепил.

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Tue Mar 07, 2017 2:05 am
by SKYNET74
Не обязательно брать сертификат от CF, можно самому в панеле сгенерировать самоподписанный, и CF его тоже съест.
Но вот вопрос, если сгенерировать его в CF и установить на сервер, будет ли CF ругаться, если кто то попытается подменить содержимое трафика между сервером и CF?
С самоподписным сертификатом естественно такого не будет, вот интересует будет ли при использовании их сертификата...

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Tue Mar 07, 2017 7:24 am
by skurudo
SKYNET74 wrote:Но вот вопрос, если сгенерировать его в CF и установить на сервер, будет ли CF ругаться, если кто то попытается подменить содержимое трафика между сервером и CF?
Если трафик будет идти через CF, то точно не будет.
А если нет, то скорее всего - будет ругаться.

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Tue Mar 07, 2017 9:59 am
by SKYNET74
skurudo wrote:
SKYNET74 wrote:Но вот вопрос, если сгенерировать его в CF и установить на сервер, будет ли CF ругаться, если кто то попытается подменить содержимое трафика между сервером и CF?
Если трафик будет идти через CF, то точно не будет.
А если нет, то скорее всего - будет ругаться.
А почему не будет?
По идее же есть все необходимое для проверки трафика между CF и сервером? Или они не считают человека по середине угрозой?

Какой метод всё таки верный, брать сертификат от них, или генерировать свой, если трафик всё равно через них гуляет?

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Tue Mar 07, 2017 10:06 am
by skurudo
А почему бы и нет? Я проверял какое-то время назад. Взял данные сертификата, что мне выдал CF и подключил, ошибок и ругани не было.

Как удобнее, имхо это не принципиально.

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Tue Apr 04, 2017 5:18 pm
by inertial21
сделал все по инструкции, однако вываливается вот такая ошибка(может и ошибся где то) "Error 521 Ray ID: 34a5ed155a767612 • 2017-04-04 17:18:18 UTC
Web server is down". если открывать сайт по http, то все ок

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Wed Apr 05, 2017 6:57 am
by skurudo
На этот счет у CF есть описание и мануалъ
A 521 error occurs because the origin web server refused the connection from Cloudflare. This means we tried to connect to your origin on port 80 or 443 but received a 'connection refused' error.
https://support.cloudflare.com/hc/en-us ... er-is-down

Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare

Posted: Thu Apr 06, 2017 11:14 am
by inertial21
skurudo wrote:На этот счет у CF есть описание и мануалъ
A 521 error occurs because the origin web server refused the connection from Cloudflare. This means we tried to connect to your origin on port 80 or 443 but received a 'connection refused' error.
https://support.cloudflare.com/hc/en-us ... er-is-down
порты открыты, все сделано по мануалу, однако толка нет