将 GCP VM 实例连接到 Google 域

将 GCP VM 实例连接到 Google 域

我正在尝试将从 Google Domains 获得的域名连接到 Google Cloud Platform VM 实例。我的域名是 .dev,当我尝试 nslookup 和 dig trace 时,它​​们已经指向正确的 IP 地址。使用此 IP 访问网站很正常。我只是无法通过域名访问同一个网站。

以下是我所做的配置:

在我的虚拟机实例(Compute Engine API)中:

  • 启用 http 和 https 流量
  • 具有网络标签 http-server 和 https-server

在 VPC 网络 API 中:

  • 将我的外部IP设为静态
  • 防火墙 tcp:443 允许流量(默认允许 https 规则)
  • 当我尝试运行“netstat -tulpn | grep LISTEN”时,端口 443 没有显示在列表中。 Web 服务器可能没有监听 443 端口

在网络服务 API 中:

  • 添加了与 Google Domains 的 DNS 和 VM 实例的外部 IP 匹配的 A 和 CNAME 记录集

在 Google Domains 中:

  • 将名称服务器修改为与网络服务 API 注册器设置值中的名称服务器相同(在自定义名称服务器选项卡下添加)

截图: 防火墙截图 网络区截图 有关防火墙的虚拟机设置

请理解我没有网络背景。非常感谢您的帮助!

答案1

根据@John Hanley 的评论回答:

  1. 带有 .dev 域名扩展名的网站需要打开端口 443。运行以下命令检查 Web 服务器是否正在监听此端口:netstat -tulpn | grep LISTEN

  2. 由于(如上面的问题所述)port443 没有出现在列表中,请配置您的 Web 服务器以监听端口 443。就我而言,我使用 nginx 作为我的服务器,因此我编辑了 /etc/nginx/nginx.conf 中的文件以使我的服务器监听端口 443。

  3. 此时,尝试访问网站将返回错误,提示您没有 SSL 证书。因此,请创建一个。我为此使用了 certbot 来生成 ssl 证书和密钥。

  4. 返回 nginx.conf 文件并打开 ssl,添加 ssl 证书和密钥。它应该看起来像这样:

... server{ server_name example.com www.example.com; listen 443; ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/bdcs.dev/privkey.pem; location / { ... } ... } ...
  1. 重启服务器(sudo systemctl restart nginx)

相关内容