Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
Когда первый раз ставил весту - дико замучился гуглить и искать как правильно прикрутить 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. НЕ должно вывалиться НИКАКИХ ошибок. И потом если зайти снова на страницу редактирования, то под всеми заполненными полями будет написано:
6. В настройках домена в КлаудФларе в разделе Crypto в блоке "SSL" нужно выбрать что угодно КРОМЕ "OFF".
7. Всё. Ваш сайт должен открываться по протоколу https. (Если нет - проверяйте в https://www.ssllabs.com/ssltest/ с очисткой кеша (там есть ссылка отдельная после проверки), если чекали ранее)
----------------------------------------------------------------------------------------
А теперь после такой полезной инструкции, где всё собрано в одно место - у меня есть вопрос. Который тоже другим будет полезен в рамках этого разговора.
Как сделать, чтобы на одной VPS с одним IP с использованием VestaCP, можно было на нескольких доменах использовать HTTPS(SSL) от CF?
В данный момент у меня такая ситуация. Неделю назад взял минимальный VPS на DigitalOcean, поставил туда Ubuntu 16.04, сделал update&upgrade, поставил весту (последнюю) следующей командой:
Добавил туда домен с SSL от CF. Сейчас потребовалось добавить второй домен с SSL, но после выполнения всех вышеприведенных инструкций я получаю (инфа о сертификате появляется при клике на NET::ERR_CERT_AUTHORITY_INVALID):
Пробовал ребутить nginx, думал что-то не подцепилось - бесполезно.
Нагуглил, что это распространенная ошибка и она из-за того, что на один IP я пытаюсь привязать несколько SSL сертификатов (бред какой-то). Вот тут советуют поменять конфиги в nginx, но по сути - то, что там написано и так уже прописано в:
Но! Именно там оба домена прописаны и у них одинаковые IP ("listen").
Поэтому я не понимаю зачем создавать ещё один конфиг, где будет прописан для ip один сертификат (или там сразу для обоих доменов разве нужно писать?).
Где я всё таки накосячил? Или где-то в весте стоит какое-то ограничение для бОльшей безопасности?
PS: домен, к сожалению, не могу в открытую написать. Могу в личку скинуть, если есть уверенность, что это поможет делу.
PPS: добавил третий домен и... всё ок с ним, а во втором всё так же ошибка. Мда. Может в CF что-то не верно отметил?
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. НЕ должно вывалиться НИКАКИХ ошибок. И потом если зайти снова на страницу редактирования, то под всеми заполненными полями будет написано:
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
Пробовал ребутить nginx, думал что-то не подцепилось - бесполезно.
Нагуглил, что это распространенная ошибка и она из-за того, что на один IP я пытаюсь привязать несколько SSL сертификатов (бред какой-то). Вот тут советуют поменять конфиги в nginx, но по сути - то, что там написано и так уже прописано в:
Code: Select all
/home/admin/conf/web/snginx.conf
Поэтому я не понимаю зачем создавать ещё один конфиг, где будет прописан для ip один сертификат (или там сразу для обоих доменов разве нужно писать?).
Где я всё таки накосячил? Или где-то в весте стоит какое-то ограничение для бОльшей безопасности?
PS: домен, к сожалению, не могу в открытую написать. Могу в личку скинуть, если есть уверенность, что это поможет делу.
PPS: добавил третий домен и... всё ок с ним, а во втором всё так же ошибка. Мда. Может в CF что-то не верно отметил?
Last edited by LAlf on Mon Feb 06, 2017 9:13 am, edited 2 times in total.
Re: VestaCP и HTTPS (SSL) от CloudFlare. Инструкция. Проблема со вторым доменом
Судя по тому, что я сегодня увидел - я сам ошибся и сделал косяк. Я несколько дней назад поменял NS сервера у второго домена, то есть перенес его от CloudFlare. И забыл. А письмо о смене NS и отключение домена в CF пришло только сейчас. Из-за этого скорее всего и была проблема с ним. Сейчас сменю обратно на CF и буду надеяться, что всё будет ок.
upd: всё стало ок. Так что инструкция выше - работающая на 100%.
upd: всё стало ок. Так что инструкция выше - работающая на 100%.
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
Полезная тема, слегка изменил название темы и прикрепил.
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
Не обязательно брать сертификат от CF, можно самому в панеле сгенерировать самоподписанный, и CF его тоже съест.
Но вот вопрос, если сгенерировать его в CF и установить на сервер, будет ли CF ругаться, если кто то попытается подменить содержимое трафика между сервером и CF?
С самоподписным сертификатом естественно такого не будет, вот интересует будет ли при использовании их сертификата...
Но вот вопрос, если сгенерировать его в CF и установить на сервер, будет ли CF ругаться, если кто то попытается подменить содержимое трафика между сервером и CF?
С самоподписным сертификатом естественно такого не будет, вот интересует будет ли при использовании их сертификата...
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
Если трафик будет идти через CF, то точно не будет.SKYNET74 wrote:Но вот вопрос, если сгенерировать его в CF и установить на сервер, будет ли CF ругаться, если кто то попытается подменить содержимое трафика между сервером и CF?
А если нет, то скорее всего - будет ругаться.
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
А почему не будет?skurudo wrote:Если трафик будет идти через CF, то точно не будет.SKYNET74 wrote:Но вот вопрос, если сгенерировать его в CF и установить на сервер, будет ли CF ругаться, если кто то попытается подменить содержимое трафика между сервером и CF?
А если нет, то скорее всего - будет ругаться.
По идее же есть все необходимое для проверки трафика между CF и сервером? Или они не считают человека по середине угрозой?
Какой метод всё таки верный, брать сертификат от них, или генерировать свой, если трафик всё равно через них гуляет?
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
А почему бы и нет? Я проверял какое-то время назад. Взял данные сертификата, что мне выдал CF и подключил, ошибок и ругани не было.
Как удобнее, имхо это не принципиально.
Как удобнее, имхо это не принципиально.
-
- Posts: 2
- Joined: Tue Apr 04, 2017 5:16 pm
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
сделал все по инструкции, однако вываливается вот такая ошибка(может и ошибся где то) "Error 521 Ray ID: 34a5ed155a767612 • 2017-04-04 17:18:18 UTC
Web server is down". если открывать сайт по http, то все ок
Web server is down". если открывать сайт по http, то все ок
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
На этот счет у CF есть описание и мануалъ
https://support.cloudflare.com/hc/en-us ... er-is-downA 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.
-
- Posts: 2
- Joined: Tue Apr 04, 2017 5:16 pm
Re: Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
порты открыты, все сделано по мануалу, однако толка нетskurudo wrote:На этот счет у CF есть описание и мануалъ
https://support.cloudflare.com/hc/en-us ... er-is-downA 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.