Рейтинг:1

Подключение экземпляра виртуальной машины GCP к домену Google

флаг bf

Я пытаюсь подключить доменное имя, полученное от Google Domains, к экземпляру виртуальной машины Google Cloud Platform. Мой домен — .dev, и когда я попробовал nslookup и dig trace, они уже указывали на правильный IP-адрес. Доступ к веб-сайту с использованием этого IP-адреса работает нормально. Я просто не могу получить доступ к тому же сайту через доменное имя.

Ниже приведена конфигурация, которую я сделал:

В моем экземпляре виртуальной машины (API Compute Engine):

  • Включен http и https трафик
  • Имеет сетевые теги http-сервер и https-сервер

В API Ньюторкс VPC:

  • Сделал мой внешний IP статическим
  • Брандмауэр на tcp:443 разрешает трафик (правило default-allow-https)
  • Когда я попытался запустить «netstat -tulpn | grep LISTEN», порт 443 не отображается в списке. Веб-сервер может не прослушивать порт 443

В API сетевых служб:

  • Добавлены наборы записей для A и CNAME, соответствующие DNS из доменов Google и внешнему IP-адресу из экземпляра виртуальной машины.

В доменах Google:

  • Изменены серверы имен, чтобы они совпадали со значениями настройки регистратора API сетевых служб (добавлены на вкладке настраиваемого сервера имен).

Скриншоты: Скриншот брандмауэра Скриншот сетевой зоны Настройка ВМ относительно брандмауэра

Пожалуйста, поймите, что у меня нет опыта работы в сети. Большое спасибо за помощь!

John Hanley avatar
флаг cn
1) Вы включили HTTPS на веб-сервере? 2) Вы установили сертификат SSL? 3) Доступ к доменам, оканчивающимся на .dev, возможен только по протоколу HTTPS с использованием веб-браузера.
Marky avatar
флаг bf
Да, https включен. Затем я должен был создать SSL-сертификат, но я не могу зарегистрировать свое доменное имя, потому что оно отказывается подключаться к IP-адресу моего сервера.
John Hanley avatar
флаг cn
На ваших скринах все нормально. Остается внутренний брандмауэр (UFW) или веб-сервер. Отредактируйте свой вопрос и включите в него подробную информацию. Кроме того, убедитесь, что ваш веб-сервер прослушивает порт 443 для сетевого интерфейса: **netstat -tulpn | grep ПРОСЛУШИВАТЬ**
Marky avatar
флаг bf
Я проверил, прослушивает ли веб-сервер порт 443, и соответствующим образом отредактировал вопрос выше. Похоже, это не так. Я не уверен, где найти внутренний брандмауэр в GCP. Небольшая помощь? Все, что я знаю, это правила брандмауэра из сетевого API VPC.
John Hanley avatar
флаг cn
Отсутствие прослушивателя для порта 443 означает, что веб-сервер не настроен на прослушивание запросов на порту 443.
Marky avatar
флаг bf
Спасибо. Я настроил файл конфигурации своего сервера и заставил его прослушивать 443 вместо 80. Кроме того, я добавил к нему сертификат SSL. После них все заработало! Большое спасибо за вашу помощь @John Hanley!
John Hanley avatar
флаг cn
Вы по-прежнему хотите, чтобы веб-сервер также прослушивал порт 80. Перенаправить соединения с порта 80 на порт 443 (перенаправление HTTPS).
Marky avatar
флаг bf
Ах да, забыл упомянуть. Я все еще слушаю порт 80, я поместил его в отдельный пункт сервера в файле conf.
Рейтинг:1
флаг bf

Ответ на основе комментариев @John Hanley:

  1. Веб-сайт с расширением доменного имени .dev требует, чтобы порт 443 был открыт. Убедитесь, что веб-сервер прослушивает этот порт, запустив netstat -tulpn | grep СЛУШАТЬ.

  2. Поскольку (как указано в вопросе выше) порт 443 не отображается в списке, настройте свой веб-сервер для прослушивания порта 443. В моем случае я использую nginx в качестве своего сервера, поэтому я отредактировал файл в /etc/nginx/nginx .conf, чтобы мой сервер прослушивал порт 443.

  3. На этом этапе попытка доступа к веб-сайту вернет ошибку, что у вас нет SSL-сертификата. Так создайте один. Я использовал certbot для создания сертификата и ключа ssl.

  4. Вернитесь к файлу nginx.conf и включите ssl, добавьте сертификат и ключ ssl. Это должно выглядеть примерно так:

... сервер{ имя_сервера example.com www.example.com; слушать 443; SSL включен; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/bdcs.dev/privkey.pem; место расположения / { ... } ... } ...
  1. Перезапустите сервер (sudo systemctl перезапустите nginx)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.