Инструкция: VestaCP и HTTPS (SSL) от CloudFlare
Posted: Sat Feb 04, 2017 11:51 pm
Когда первый раз ставил весту - дико замучился гуглить и искать как правильно прикрутить 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 что-то не верно отметил?