在 SSL 根域旁边使用非 SSL 子域?

在 SSL 根域旁边使用非 SSL 子域?

我一直在查看其他类似的问题,但到目前为止,我找到的所有答案都不起作用。

我尝试使用我的根域(现在假设为“domain.net”)来使用 SSL 来处理我自己的内容。到目前为止,它与 SSL 一起使用。问题开始于我尝试在同一系统上使用子域(用于没有 SSL 的服务器面板)之后。Google
Domains 是我的提供商。到目前为止,我尝试过将“sub.domain.net”指向“domain.net”的 CNAME DNS 条目,然后尝试将“sub.domain.net”指向与“domain.net”相同的 IP 地址的第二个 A 条目,但都没有起作用。从任何一次尝试中我得到的最佳结果是,当连接到“sub.domain.net”时,我的路由器的信息页面会显示出来。

这是我当前的 Apache 配置(我的域名已编辑为“domain.net”以保持其私密性):

<VirtualHost *:80>
  ServerName domain.net
  RewriteEngine On
  RewriteCond %{HTTPS} !=on
  RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

<VirtualHost *:443>
  ServerName domain.net
  DocumentRoot "/var/www/resume"
  SSLEngine on
  SSLCertificateFile /etc/letsencrypt/live/domain.net/fullchain.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/domain.net/privkey.pem
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "/var/www/pterodactyl/public"
  ServerName sub.domain.net
  AllowEncodedSlashes On
  php_value upload_max_filesize 100M
  php_value post_max_size 100M
  <Directory "/var/www/pterodactyl/public">
    AllowOverride all
  </Directory>
</VirtualHost>

我要做什么才能让它成功?

答案1

我不确定这个问题是否可以准确回答,但我可以做出一些可能有助于您解决问题的陈述。

对于网页和 DNS,DNS 所做的就是将域名解析为 IP 地址。对于子域名,您可以使用指向域名的 CNAME,或者您可以直接输入 IP 地址 - 如果有疑问,IP 地址更好。我的观点是,只要 DNS 指向您的 Web 服务器的 IP 地址,DNS 的编程方式就不会影响 Web 服务器显示的页面。

如果您在网络内部托管网站,则可能会遇到外部 IP 地址和内部 IP 地址不同的问题,除非您的路由器可以处理所谓的“Hairpin NAT”,否则您可能需要使用一些技巧,例如在 hosts 文件中添加条目以覆盖 DNS 设置并指向 Web 服务器的内部 IP 地址。

不过,我怀疑您的网站不是托管在您的家庭网络之外。如果是这种情况,并且您获得了路由器主页,则很可能存在本地 DNS 问题 - 您应该尝试从未连接到 LAN 的设备进行操作,看看会发生什么。我猜是您的路由器中设置了“搜索域”或域名,它与您尝试托管的网站的域相同,这会混淆 LAN 上的 DNS 系统。您可以通过将其更改为“内部网”来解决路由器中的此问题

相关内容