Как узнать реальный пинг до сервера защищенным CloudFlare?
Здравствуйте, подскажите, можно ли как-то узнать реальный пинг до сайта (сервера), если его реальный IP скрыт через CloudFlare ?
- Вопрос задан более двух лет назад
- 109 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 1

SKEPTIC @pro100chel
Python && PHP Developer
Запрос могут обрабатывать разные сервера, иногда эти сервера находятся в разных странах
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Обход NAT с помощью IPv6 & CloudFlare
Доброго времени суток. Сегодня я бы хотел поделиться с вами интересным способом решения проблемы доступа к вашему серверу/ПК из-за NAT, используя IPv6 Tunnel Broker и бесплатные возможности сервиса CloudFlare.
Предисловие
Как известно, многим пользователям предоставляется доступ в интернет или с помощью динамического IP-адреса, или с помощью технологии NAT.
Если первые еще могут воспользоваться каким-либо Free DDNS сервисом, то вторым приходится сидеть, сложа руки, или покупать у провайдера заветный статический IP-адрес.
В данной статье вы увидите как с помощью вышеупомянутых сервисов «захостить» блог из компьютера, который находится за NAT. В итоге сайт будет доступен даже там, где IPv6 подключения нет и в помине.
IPv6
Прежде всего нужно заполучить IPv6-адрес, без которого у нас ничего не получится. Некоторые провайдеры уже начали их предоставлять своим пользователям, но так как мой не выдает IPv6-адреса, воспользуемся каким-либо сервисом, предоставляющим доступ к IPv6 поверх существующего соединения IPv4. Был выбран Freenet6 Tunnel Broker из-за удобного клиента под Windows.
- Windows x86
- Windows x64
- Исходники для компиляции на Linux/Unix/MacOS/BSD
- В некоторых Linux-дистрибутивах присутствует RPM-пакет с названием gogoc

По умолчанию подключение происходит анонимно, это сулит тем, что IPv6 адрес будет меняться после переподключения (у меня по крайней мере так).
Для избежания этого и получения статического IPv6-адреса нужно опять зарегистрироваться, на этот раз на сервере Freenet6. Выбор небольшой — Амстердам или Монреаль. Выбирайте что к вам ближе.
Когда очередная регистрация прошла успешно, можно и подключаться! Вводим наш логин и пароль вместе с выбранным адресом сервера и жмем Connect.
Так как мы за NAT, автоматически будет выбран IPv6-in-UDP-IPv4 Tunnel Mode. Это можно увидеть на закладке Advanced и Status:

IPv6-адрес в «Local Endpoint Adresses» это и есть наш желаемый адрес. Чтобы убедится что наш компьютер доступен извне, пробуем пропинговаться. Если результат негативный, скорее всего в фаерволе придется создать входящее правило для «ICMPv6».
Установка WAMP
Для локального доступа я давно использую WampServer. Впрочем, использоваться может любой другой, или же все компоненты по отдельности.
После установки нужно убедиться, что все сервисы успешно запустились (иконка в трее зелёнего цвета), и localhost вместе с phpMyAdmin доступны.

Также сразу стоит задать пароль для root-пользователя MySQL сервера.
Кликаем по иконке в трее, MySQL -> MySQL Console, .
Используем оператор UPDATE для изменения пароля:
UPDATE user SET password=PASSWORD(‘новый пароль’) WHERE user=’root’;
Затем
flush privileges;
quit;
Все, пароль изменен. Скачиваем какой-нибудь WordPress и распаковываем в www-директорию.
Доменное имя
Так как мы собираемся захостить вебсайт, для удобного доступа потребуется доменное имя. В Украине бесплатно вы можете зарегистрировать его в таких зонах как .pp.ua и .bz.ua. В России, насколько мне известно — .net.ru, .org.ru. Как сообщил пользователь bost84 в комментариях, эти домены уже не бесплатны.
На этом этапе зацикливаться не будем, в Интернете есть множество статей как это сделать.
CloudFlare
Наверное большинство пользователей Хабрахабра знает или слышали о таком CDN-сервисе, как CloudFlare.
Регистрируемся, добавляем домен в разделе «Websites», ждем минуту пока просканируются DNS-записи парковочных DNS регистратора. После этого кликаем на «Continue Setup», откроется страница настроек DNS-записей, где нужно удалить все A-записи, а AAAA-записям присвоить полученный статический IPv6-адрес.
В итоге должно выглядеть так:

Подтверждаем изменения и получаем список из двух DNS-серверов, которые используем вместо парковочных.
В разделе «Websites» заходим в «CloudFlare Settings» для нашего домена и для настройки «Automatic IPv6» меняем значение на «Full».
Вот и все — осталось дождаться смены DNS-серверов. Если не терпится, с помощью nslookup узнаем якобы IPv4-адрес нашего сайта (в действительности адрес CloudFlare Network) и делаем изменения в файле «hosts».

Можно идти устанавливать WordPress, и в результате воспользоваться каким-либо анонимайзером для проверки доступа извне:


На этом все, спасибо за внимание.
Setting up Cloudflare Tunnel for development
Cloudflare Tunnel is a free alternative to Ngrok that allows publicly exposing your local web server. Usually, it’s used in development for testing webhooks or some third-party APIs that require public URLs. In my case, I use it for Shopify Apps development.
One of the biggest benefits of Cloudflare Tunnel is that it allows using custom domains with tunnels for free. This way you can have a permanent public URL which is much better than random URLs in Ngrok’s free plan. Another benefit is that you can store tunnel configuration inside git repository next to your app so your team members may start tunnels without any additional setup and without a Cloudflare account. Let’s take a look at how you can set things up.
Step 1: Domain
First thing first you’ll need a domain that will be used to start tunnels for development. I use separate platmart.dev domain for that and have tunnels on subdomains: [app-name].platmart.dev . Once you get it you’ll need to create a Cloudflare account and add you dev domain to it: Creating a Cloudflare account and adding a website
Step 2: Setup CLI
Next you’ll need to setup a CLI for Cloudflare Tunnel. It’s called cloudflared . For macOS you can install it via homebrew (for other operating systems check installation options):
brew install cloudflare/cloudflare/cloudflared
cloudflared tunnel login
It will open browser and prompt you to login into you Cloudflare account. Select your dev domain from Step 1. This will generate account certificate in ~/cloudflared/cert.pem .
Step 3: Create tunnel
To create your first tunnel run:
cloudflared tunnel create
This will create new tunnel and save it’s credentials in ~/.cloudflared/.json . Now create a subdomain for this tunnel:
cloudflared tunnel route dns
It will create CNAME record for your dev domain and point it to tunnel.
Step 4: Connect to app
Time to connect tunnel to the app. Create .cloudflared folder inside app.
Add .cloudflared/credentials.json and copy tunnel credentials to it from ~/.cloudflared/.json .
Create .cloudflared/config.yml file with the following content:
tunnel: credentials-file: .cloudflared/credentials.json noTLSVerify: true
Add bin/tunnel file inside app with the following content:
#!/usr/bin/env bash cloudflared tunnel --config .cloudflared/config.yml --url localhost:3000 run
And set execute permissions for bin/tunnel :
chmod +x bin/tunnel
Replace 3000 port with your app’s port if needed. Commit these changes to git repository.
Step 5: Run the tunnel
To run the tunnel inside app folder call:
bin/tunnel
This command will start the tunnel. You team mates will only need to download cloudflared CLI tool. They won’t need to login to Cloudflare or have certificate to start a tunnel.

To view the list of all tunnels with their statuses you’ll need to create a free Cloudflare for Teams account here. Then go to “Access” > “Tunnels” page:
Bonus: Multiple tunnels per app
When working with team single tunnel won’t be enough. Not a big problem. We can create additional tunnels and use them in a similar way. Every new tunnel will have incremental suffix -N added to it’s name:
cloudflared tunnel create -2 cloudflared tunnel route dns -2 -2
Credentials file will have a suffix too: .cloudflared/credentials-2.json .
And .cloudflared/config-2.yml as well:
tunnel: -2 credentials-file: .cloudflared/credentials-2.json noTLSVerify: true
The biggest change will be in bin/tunnel file:
#!/usr/bin/env bash while getopts ":n:" opt; do case $opt> in n) echo "Running tunnel #$OPTARG" suffix="-$OPTARG>" ;; :) echo "Invalid option -$OPTARG: specify a tunnel number" 1>&2 exit 1 ;; esac done cloudflared tunnel --config .cloudflared/config$suffix>.yml --url localhost:3000 run $suffix>
With this setup we can start default tunnel using:
$ bin/tunnel
And to start additional tunnels we can add -n option with tunnel number:
$ bin/tunnel -n 2 Running tunnel #2
With this setup you can have as many tunnels as you need. All of them will have permanent public URL and they can be easily used by your team members without additional setup. And it’s all free!
If want to hear more from me follow me on Twitter. I tweet about my journey of building and growing Shopify apps and about Ruby on Rails development.
Subscribe to get new blog posts via email
Как пропинговать от cloudflare до своего сервера
Хостинг сайта с использованием Cloudflare и Nginx в Ubuntu 20.04

Cloudflare — это служба, располагающаяся между посетителем и сервером владельца сайта, выступающая как обратный прокси-сервер для сайтов. Cloudflare предоставляет сеть доставки контента (CDN), а также защиту от DDoS и распределенные службы сервера доменных имен.
Nginx — это популярный веб-сервер, на котором размещены многие крупнейшие сайты с самым большим трафиком в Интернете. Организации часто обслуживают сайты с помощью Nginx и используют Cloudflare как поставщика CDN и DNS.
В этом обучающем модуле вы научитесь защищать свой сайт, обслуживаемый Nginx, сертификатом ЦС Origin от Cloudflare и настраивать Nginx для использования запросов pull с аутентификацией. Преимущества такой системы заключаются в том, что вы используете CDN и быстрое разрешение DNS от Cloudflare и гарантируете проведение всех соединений через Cloudflare. Это не даст вредоносным запросам достичь вашего сервера.
Предварительные требования
Для прохождения данного обучающего руководства вам потребуется следующее:
- Один сервер Ubuntu 20.04, настроенный в соответствии с руководством по начальной настройке сервера Ubuntu 20.04, включая пользователя без прав root с привилегиями sudo и брандмауэр.
- Nginx, установленный на сервере. Вы можете следовать указаниям нашего руководства по установке Nginx в Ubuntu 20.04.
- Учетная запись Cloudflare.
- Добавленный в учетную запись Cloudflare зарегистрированный домен, указывающий на ваш сервер Nginx. В настройке вам поможет наше руководство по смягчению DDoS-атак против вашего сайта с помощью Cloudflare. Также будет полезно наше введение в терминологию, компоненты и концепции DNS.
- Серверный блок Nginx, настроенный для вашего домена, для чего вы можете использовать шаг 5 руководства по установке Nginx в Ubuntu 20.04.
Шаг 1 — Генерирование сертификата TLS от ЦС Origin
Центр сертификации Cloudflare Origin позволяет сгенерировать бесплатный сертификат TLS, подписанный Cloudflare, для установки на ваш сервер Nginx. Используя сгенерированный TLS сертификат TLS Cloudflare, вы можете защитить соединение между серверами Cloudflare и вашим сервером Nginx.
Для генерирования сертификата с использованием ЦС Origin выполните вход в свою учетную запись Cloudflare через браузер. Выберите домен, который хотите защитить, и перейдите в раздел SSL/TLS панели управления Cloudflare. Откройте вкладку Origin Server (Сервер Origin) и нажмите кнопку Create Certificate (Создать сертификат):

Оставьте выбранной опцию по умолчанию Let Cloudflare generate a private key and a CSR (Позволить Cloudflare сгенерировать закрытый ключ и CSR).

Нажмите Next (Далее), и вы увидите диалоговое окно с сертификатом Origin и закрытым ключом. Вам потребуется переместить сертификат Origin и закрытый ключ с сервера Cloudflare на ваш сервер. Для дополнительной безопасности информация закрытого ключа больше не будет отображаться, поэтому вам следует скопировать ключ на свой сервер, прежде чем нажать OK.

Мы будем использовать каталог /etc/ssl на сервере для хранения сертификата Origin и файлов закрытого ключа. Эта папка уже существует на сервере.
Вначале скопируйте содержимое сертификата Origin, отображаемое в диалоговом окне вашего браузера.
Затем откройте на сервере файл /etc/ssl/cert.pem в предпочитаемом текстовом редакторе:
Добавьте в файл содержимое сертификата. Сохраните файл и закройте редактор.
Затем вернитесь в браузер и скопируйте содержимое закрытого ключа. Откройте файл /etc/ssl/key.pem для редактирования:
Вставьте в файл закрытый ключ, закройте файл и выйдите из редактора.
Примечание. Иногда при копировании сертификата и ключа из панели управления Cloudflare и их вставке в соответствующие файлы на сервере в файлы могут быть добавлены пустые строки. Nginx рассматривает такие сертификаты и ключи как некорректные, поэтому следует убедиться, что в файлах нет пустых строк.
Предупреждение. Сертификату ЦС Cloudflare Origin доверяет только Cloudflare, и поэтому его следует использовать только на серверах Origin, имеющих активное подключение к Cloudflare. Если вы приостановите или отключите Cloudflare в любой момент, при обработке сертификата ЦС Origin будет выведена ошибка отсутствия доверия к сертификату.
Мы скопировали файлы ключа и сертификата на сервер, и теперь нам нужно обновить конфигурацию Nginx для их использования.
Шаг 2 — Установка сертификата ЦС Origin в Nginx
В предыдущем разделе мы сгенерировали сертификат Origin и закрытый ключ, используя панель управления Cloudlfare, а также сохранили файлы на сервере. Теперь мы обновим конфигурацию Nginx нашего сайта, чтобы использовать сертификат Origin и закрытый ключ для защиты соединения между серверами Cloudflare и вашим сервером.
Для начала убедитесь, что брандмауэр UFW разрешает трафик HTTPS. Включите опцию Nginx Full , которая открывает порт 80 (HTTP) и порт 443 (HTTPS):
Убедитесь, что новые правила разрешены и брандмауэр UFW активен:
Результат должен будет выглядеть следующим образом:
Теперь вы готовы к настройке серверного блока Nginx. Во время установки Nginx создает серверный блок по умолчанию. Удалите его, если он еще существует, поскольку мы уже настроили персонализированный серверный блок для вашего домена:
Затем откройте файл конфигурации Nginx для вашего домена:
Файл должен выглядеть следующим образом:
Мы изменим конфигурацию Nginx, чтобы она выполняла следующее:
- Прослушивание порта 80 и перенаправление всех запросов с использованием https .
- Прослушивание порта 443 и использование сертификата Origin и закрытого ключа, добавленных на предыдущем шаге.
Измените файл, чтобы он выглядел следующим образом:
Сохраните файл и выйдите из редактора.
Протестируйте файлы конфигурации Nginx на отсутствие ошибок синтаксиса:
Если вы не обнаружите проблем, перезапустите Nginx для внесения изменений:
Откройте раздел SSL/TLS панели управления Cloudflare, перейдите на вкладку Overview (Обзор) и измените режим шифрования SSL/TLS на Full (strict) (Полный (строгий)). Это предпишет Cloudflare всегда шифровать соединение между Cloudflare и вашим сервером Nginx.

Теперь откройте свой сайт по адресу https:// your_domain и убедитесь, что он правильно настроен. Вы увидите свою домашнюю страницу, и браузер сообщит, что сайт защищен.
В следующем разделе мы настроим аутентификацию запросов pull ЦС Origin для подтверждения того, что ваш сервер взаимодействует именно с Cloudflare, а не с каким-то другим сервером. Так мы настроим Nginx принимать только те запросы, в которых используется действующий сертификат клиента от Cloudflare, а все запросы, не проходящие через Cloudflare, будут отбрасываться.
Шаг 3 — Настройка запросов pull ЦС Origin с аутентификацией
Сертификат ЦС Origin помогает Cloudflare подтверждать взаимодействие с правильным сервером Origin. На этом шаге мы используем аутентификацию клиента TLS, чтобы подтвердить взаимодействие вашего сервера Nginx с Cloudflare.
При установлении связи TLS с аутентификацией клиента обе стороны предоставляют сертификат для проверки. Сервер Origin настроен так, чтобы принимать только те запросы, в которых используется действующий сертификат клиента от Cloudflare. Запросы, не проходящие через Cloudflare, будут отклоняться, поскольку у них не будет сертификата Cloudflare. Это означает, что злоумышленники не смогут обходить меры безопасности Cloudflare и подключаться к вашему серверу Nginx напрямую.
Cloudflare предоставляет сертификаты, подписанные ЦС со следующим сертификатом:
Также вы можете загрузить сертификат напрямую из Cloudflare здесь.
Скопируйте этот сертификат.
Затем создайте файл /etc/ssl/cloudflare.crt для хранения сертификата Cloudflare:
Добавьте сертификат в файл. Сохраните файл и выйдите из редактора.
Обновите конфигурацию Nginx для использования запросов pull ЦС Origin с аутентификацией TLS. Откройте файл конфигурации вашего домена:
Добавьте директивы ssl_client_certificate и ssl_verify_client , как показано в следующем примере:
Сохраните файл и выйдите из редактора.
Проведите тестирование Nginx и убедитесь, что в вашей конфигурации Nginx нет ошибок синтаксиса:
Если проблем обнаружено не будет, перезапустите Nginx для активации изменений:
Для аутентификации запросов pull откройте раздел SSL/TLS в панели управления Cloudflare, перейдите на вкладку Origin Server (Сервер Origin) и включите опцию Authenticated Origin Pulls (Запросы pull сервера Origin с аутентификацией).

Откройте сайт по адресу https:// your_domain для проверки правильности настройки. Как и в предыдущем случае, вы увидите свою домашнюю страницу.
Чтобы ваш сервер принимал только запросы, подписанные ЦС Cloudflare, отключите опцию Authenticated Origin Pulls (Запросы pull сервера Origin с аутентификацией) и перезагрузите свой сайт. Вы должны получить следующее сообщение об ошибке:

Ваш сервер Origin выдаст ошибку, если ЦС Cloudflare не подпишет запрос.
Примечание. Большинство браузеров кэшируют запросы, и, чтобы увидеть вышеуказанное изменение, вы можете использовать режим инкогнито/конфиденциального просмотра в своем браузере. Чтобы не дать Cloudflare кэшировать запросы во время настройки сайта, перейдите на вкладку Overview (Обзор) в панели управления Cloudflare и включите опцию Development Mode (Режим разработки).
Теперь вы знаете, что все работает нормально, и вам нужно будет вернуться в раздел SSL/TLS на панели управления Cloudflare, перейти на вкладку Origin Server (Сервер Origin) и включить опцию Authenticated Origin Pulls (Запросы pull ЦС Origin с аутентификацией).
Заключение
В этом обучающем модуле мы защитили сайт на базе Nginx посредством шифрования трафика между Cloudflare и сервером Nginx с использованием сертификата ЦС Origin от Cloudflare. Затем мы настроили запросы pull ЦС Origin с аутентификацией на сервере Nginx, чтобы он принимал только запросы с серверов Cloudflare, и чтобы никто другой не мог подключиться к серверу Nginx напрямую.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Ping all the ips of cloudflare.
License
olixu/cloudflare-ip-ping
Name already in use
- Local
- Codespaces
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
博客:Oliverxu’s blog
cloudflare-ip-ping
Cloudflare provides a CDN service which can speed up the websites. While using the free plan, you could not choose the nodes of the CDN. However, The cloudflare partner project allows users to use cname to get their websites into the CDN, which means users can choose whichever nodes they like.
There are some situations that you only want to speed up your websites at your location. I will tell you how to use Python to choose the the ip that suits you best.
Principle
Cloudflare has a ip list of their CDN, which can be obtained at here. The method that i use is very simple:
- Ping the IPs and get the latency and loss.
- Choose the best IP.
- Use Cloudflare Partner Project to cname your domain to the chosen ip.
Usage
You will get a log file in your current directory.
In pingip.py file. You could change:
- the number of threads to fit the performance of your computer and your network capacity.
- the THRESHOLD under which the ip and latency will be logged into the log file.
Windows Clients
If you are using windows 10 x64. You can directly use the package I packed, It can be found [here].(https://github.com/olixu/cloudflare-ip-ping/releases)
How to contribute this repo
You could open an issue and upload your log file, tell me whether this script works or not, please attach your location and your network supplier.
Обслуживание веб-сайта с помощью Cloudflare и Nginx в Ubuntu 16.04
Cloudflare – это сервис, который находится между посетителем и сервером веб-сайта и действует как обратный прокси-сервер. Cloudflare предоставляет сеть доставки контента (CDN), а также сервисы для смягчения атак DDoS и распределенные серверы доменных имен.
Nginx – популярный веб-сервер, с помощью которого сегодня обслуживается множество крупных и дорогих сайтов в Интернете. Организации часто используют Nginx для обслуживания сайтов, а Cloudflare – в качестве провайдера CDN и DNS.
В этом мануале вы научитесь защищать свой сайт с помощью сертификата Origin CA от Cloudflare и настраивать Nginx для поддержки авторизации запросов на загрузку. Преимущества этой настройки заключаются в том, что вы можете пользоваться CDN и быстрым разрешением DNS, гарантируя, что все соединения проходят через Cloudflare. Это предотвращает доступ злоумышленников к серверу.
Требования
- Сервер Ubuntu 16.04, настроенный по этому мануалу.
- Nginx, установленный по мануалу Установка Nginx в Ubuntu 16.04.
- Аккаунт Cloudflare.
- Зарегистрированный домен, добавленный в ваш аккаунт Cloudflare, который указывает на сервер Nginx. Следуйте мануалу Смягчение DDoS-атаки сайта с помощью CloudFlare.
- Виртуальный хост Nginx для вашего домена, который вы можете создать по инструкциям мануала Настройка виртуальных хостов Nginx в Ubuntu 16.04.
1: Создание TLS-сертификата Origin CA
Центр сертификации Cloudflare Origin CA позволяет создавать бесплатные сертификаты TLS, подписанные Cloudflare, и устанавливать их на сервер Nginx. Используя TLS-сертификат Cloudflare, вы можете защитить соединение между серверами Cloudflare и Nginx.
Чтобы получить сертификат Origin CA, откройте раздел Crypto в панели управления Cloudflare, кликните Create Certificate в разделе Origin Certificates.
Оставьте опцию Let CloudFlare generate a private key and a CSR.
Нажмите Next, и вы увидите диалог с Origin Certificate и Private key. Вам необходимо перенести сертификат и закрытый ключ с CloudFlare на сервер.
Для хранения сертификата можно использовать каталог /etc/ssl/certs. В каталоге /etc/ssl/private будет храниться файл закрытого ключа. Обе папки уже существуют на сервере.
Сначала скопируйте содержимое сертификата Origin Certificate, отображаемого в диалоговом окне вашего браузера.
Затем на сервере откройте /etc/ssl/certs/cert.pem для редактирования:
sudo nano /etc/ssl/certs/cert.pem
Вставьте содержимое сертификата в файл. Затем сохраните и выйдите из редактора.
Вернитесь в браузер и скопируйте содержимое Private key. Откройте файл /etc/ssl/private/key.pem для редактирования:
sudo nano /etc/ssl/private/key.pem
Вставьте ключ в файл, сохраните его и закройте редактор.
Важно! Сертификату Origin CA доверяет только Cloudflare, поэтому его можно использовать только серверами, которые подключены к Cloudflare. Если в какой-либо момент вы приостановите или отключите Cloudflare, сертификат Origin CA выдаст ошибку, потому что сертификат не является доверенным.
Теперь, когда вы скопировали ключ и сертификат на сервер, вам необходимо обновить конфигурацию Nginx, чтобы использовать их.
2: Установка Origin CA на Nginx
Итак, вы сгенерировали сертификат и закрытый ключ с помощью панели управления Cloudlfare и сохранили файлы на вашем сервере. Теперь нужно обновить конфигурацию Nginx вашего сайта, чтобы веб-сервер мог использовать сертификат и ключ для защиты соединения между серверами Cloudflare и вашим сервером.
Nginx создает виртуальный хост по умолчанию во время установки. Удалите его, если он существует, поскольку у вас уже должен быть пользовательский виртуальный хост.
sudo rm /etc/nginx/sites-enabled/default
Затем откройте конфигурационный файл Nginx для вашего домена:
sudo nano /etc/nginx/sites-available/example.com
Он должен выглядеть так:
Конфигурационный файл Nginx нужно изменить следующим образом:
- Настроить прослушивание порта 80 и перенаправить все запросы на использование https.
- Настроить прослушивание порта 443 и добавить поддержку сертификата и закрытого ключа.
Сохраните и закройте фал.
Затем проверьте, нет ли в конфигурации Nginx синтаксических ошибок:
Если ошибок не обнаружено, перезапустите Nginx, чтобы обновить параметры:
sudo systemctl restart nginx
Теперь перейдите в раздел Crypto панели Cloudflare и измените режим SSL на Full. Так Cloudflare сможет шифровать соединение между своими серверами и вашим сервером Nginx.
Теперь посетите свой веб-сайт, чтобы убедиться, что он настроен правильно. Вы увидите свою домашнюю страницу, а браузер сообщит, что сайт защищен.
В следующем разделе вы настроите Authenticated Origin Pulls. Это позволит серверу подтвердить, что он действительно взаимодействует с Cloudflare, а не с каким-то другим сервером. При этом Nginx будет настроен только на прием запросов, которые используют действительный сертификат клиента Cloudflare, а запросы, которые не прошли через CloudFlare, будут сброшены.
3: Настройка Authenticated Origin Pulls
Сертификат CA Origin поможет серверу Cloudflare подтвердить, что он взаимодействует с правильным сервером. Но как сервер Nginx может проверить, что он на самом деле взаимодействует с Cloudflare? Для этого нужно настроить аутентификацию клиента TLS.
При рукопожатии TLS обе стороны предоставляют для проверки свои сертификаты. Исходный сервер настроен только на прием запросов, которые используют действительный сертификат клиента Cloudflare. Запросы, которые не прошли через Cloudflare, будут сбрасываться, поскольку у них нет сертификата Cloudflare. Это означает, что злоумышленники не могут обойти меры безопасности Cloudflare и напрямую подключиться к вашему серверу Nginx.
Cloudflare представляет сертификаты, подписанные ЦС, со следующим сертификатом:
——BEGIN CERTIFICATE——
MIIGBjCCA/CgAwIBAgIIV5G6lVbCLmEwCwYJKoZIhvcNAQENMIGQMQswCQYDVQQG
EwJVUzEZMBcGA1UEChMQQ2xvdWRGbGFyZSwgSW5jLjEUMBIGA1UECxMLT3JpZ2lu
IFB1bGwxFjAUBgNVBAcTDVNhbiBGcmFuY2lzY28xEzARBgNVBAgTCkNhbGlmb3Ju
aWExIzAhBgNVBAMTGm9yaWdpbi1wdWxsLmNsb3VkZmxhcmUubmV0MB4XDTE1MDEx
MzAyNDc1M1oXDTIwMDExMjAyNTI1M1owgZAxCzAJBgNVBAYTAlVTMRkwFwYDVQQK
ExBDbG91ZEZsYXJlLCBJbmMuMRQwEgYDVQQLEwtPcmlnaW4gUHVsbDEWMBQGA1UE
BxMNU2FuIEZyYW5jaXNjbzETMBEGA1UECBMKQ2FsaWZvcm5pYTEjMCEGA1UEAxMa
b3JpZ2luLXB1bGwuY2xvdWRmbGFyZS5uZXQwggIiMA0GCSqGSIb3DQEBAQUAA4IC
DwAwggIKAoICAQDdsts6I2H5dGyn4adACQRXlfo0KmwsN7B5rxD8C5qgy6spyONr
WV0ecvdeGQfWa8Gy/yuTuOnsXfy7oyZ1dm93c3Mea7YkM7KNMc5Y6m520E9tHooc
f1qxeDpGSsnWc7HWibFgD7qZQx+T+yfNqt63vPI0HYBOYao6hWd3JQhu5caAcIS2
ms5tzSSZVH83ZPe6Lkb5xRgLl3eXEFcfI2DjnlOtLFqpjHuEB3Tr6agfdWyaGEEi
lRY1IB3k6TfLTaSiX2/SyJ96bp92wvTSjR7USjDV9ypf7AD6u6vwJZ3bwNisNw5L
ptph0FBnc1R6nDoHmvQRoyytoe0rl/d801i9Nru/fXa+l5K2nf1koR3IX440Z2i9
+Z4iVA69NmCbT4MVjm7K3zlOtwfI7i1KYVv+ATo4ycgBuZfY9f/2lBhIv7BHuZal
b9D+/EK8aMUfjDF4icEGm+RQfExv2nOpkR4BfQppF/dLmkYfjgtO1403X0ihkT6T
PYQdmYS6Jf53/KpqC3aA+R7zg2birtvprinlR14MNvwOsDOzsK4p8WYsgZOR4Qr2
gAx+z2aVOs/87+TVOR0r14irQsxbg7uP2X4t+EXx13glHxwG+CnzUVycDLMVGvuG
aUgF9hukZxlOZnrl6VOf1fg0Caf3uvV8smOkVw6DMsGhBZSJVwao0UQNqQIDAQAB
o2YwZDAOBgNVHQ8BAf8EBAMCAAYwEgYDVR0TAQH/BAgwBgEB/wIBAjAdBgNVHQ4E
FgQUQ1lLK2mLgOERM2pXzVc42p59xeswHwYDVR0jBBgwFoAUQ1lLK2mLgOERM2pX
zVc42p59xeswCwYJKoZIhvcNAQENA4ICAQDKDQM1qPRVP/4Gltz0D6OU6xezFBKr
LWtDoA1qW2F7pkiYawCP9MrDPDJsHy7dx+xw3bBZxOsK5PA/T7p1dqpEl6i8F692
g//EuYOifLYw3ySPe3LRNhvPl/1f6Sn862VhPvLa8aQAAwR9e/CZvlY3fj+6G5ik
3it7fikmKUsVnugNOkjmwI3hZqXfJNc7AtHDFw0mEOV0dSeAPTo95N9cxBbm9PKv
qAEmTEXp2trQ/RjJ/AomJyfA1BQjsD0j++DI3a9/BbDwWmr1lJciKxiNKaa0BRLB
dKMrYQD+PkPNCgEuojT+paLKRrMyFUzHSG1doYm46NE9/WARTh3sFUp1B7HZSBqA
kHleoB/vQ/mDuW9C3/8Jk2uRUdZxR+LoNZItuOjU8oTy6zpN1+GgSj7bHjiy9rfA
F+ehdrz+IOh80WIiqs763PGoaYUyzxLvVowLWNoxVVoc9G+PqFKqD988XlipHVB6
Bz+1CD4D/bWrs3cC9+kk/jFmrrAymZlkFX8tDb5aXASSLJjUjcptci9SKqtI2h0J
wUGkD7+bQAr+7vr8/R+CBmNMe7csE8NeEX6lVMF7Dh0a1YKQa6hUN18bBuYgTMuT
QzMmZpRpIBB321ZBlcnlxiTJvWxvbCPHKHj20VwwAz7LONF59s84ZsOqfoBv8gKM
s0s5dsq5zpLeaw==
——END CERTIFICATE——
Также вы можете загрузить сертификат с Cloudflare по этой ссылке.
Скопируйте этот сертификат.
Откройте файл /etc/ssl/certs/cloudflare.crt, где хранится сертификат Cloudflare.
sudo nano /etc/ssl/certs/cloudflare.crt
Вставьте следующий сертификат в файл. Сохраните и закройте его.
Теперь обновите конфигурацию Nginx, чтобы настроить поддержку TLS Authenticated Origin Pulls. Откройте конфигурационный файл своего домена:
sudo nano /etc/nginx/sites-available/example.com
Добавьте директивы ssl_client_certificate и ssl_verify_client, как показано в следующем примере: