You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Compute Engine未配置SSL证书却自动启用HTTPS的原因咨询

Google Cloud Compute Engine未配置SSL证书却自动启用HTTPS的原因咨询

我给客户在Google Cloud Platform的Compute Engine上搭建了一个UAT站点,系统是Ubuntu 23.10,已经在防火墙开放了HTTP和HTTPS端口。DNS托管在Cloudflare免费版上。

我的Apache虚拟主机配置如下:

<VirtualHost *:80>
ServerName mydomain.co.in
ServerAlias mydomain.co.in
ServerAdmin info@mydomain.co.in
DocumentRoot /home/info/mydomain

<Directory "/home/info/mydomain">
Order allow,deny
Allow from all
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:443>
ServerName mydomain.co.in
ServerAlias mydomain.co.in
ServerAdmin info@mydomain.co.in
DocumentRoot /home/info/mydomain

<Directory "/home/info/mydomain">
Order allow,deny
Allow from all
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

但奇怪的是,这个站点居然能正常通过HTTPS访问——我根本没配置任何PEM证书、也没用到Certbot之类的工具,甚至连证书警告都没有。更诡异的是,显示的证书是根域名的,而不是我给服务器配置的那个子域名。这到底是怎么回事啊?


可能的原因分析:

  • Cloudflare自动HTTPS在起作用:你用的是Cloudflare免费版,它默认开启了「自动HTTPS」功能。当你的域名DNS解析设置为Cloudflare的代理模式(橙色云朵图标)时,用户的请求会先到Cloudflare的边缘节点,Cloudflare会自动为你的域名生成并部署SSL证书,然后把你的服务器返回的HTTP流量转换成HTTPS再发送给用户。整个过程你的服务器本身不需要配置任何证书,因为加密是在Cloudflare和用户之间完成的,Cloudflare和你的服务器之间甚至可能是HTTP通信(当然你也可以配置成HTTPS回源,但默认可能是HTTP)。
  • 证书覆盖/继承问题:关于证书显示根域名而非子域名,大概率是Cloudflare的通用SSL证书导致的——Cloudflare的免费版Universal证书默认包含根域名和所有子域名,所以不管你访问根域名还是子域名,都会显示这个根域名的证书。另外也有可能你给服务器配置的子域名解析没有正确生效,或者Cloudflare的缓存还没刷新,导致实际访问时匹配到了根域名的证书配置。
  • 排除GCP自身的自动SSL:Google Compute Engine本身不会自动给独立实例配置SSL证书,除非你使用了Cloud Load Balancer并配置了证书管理服务,但你明确说没做相关操作,所以这个可能性可以排除。

备注:内容来源于stack exchange,提问作者anjanesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 09:19:35