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

如何配置domain2(server2)指向domain1(server1)并创建两个带SSL的子域名应用

解决方案步骤

1. 修正DNS记录配置逻辑

先明确主域名与子域名的指向规则,避免URL转发导致的SSL冲突:

  • 主域名 domain2.com:配置A/AAAA记录指向server1的固定公网IP(第三方托管服务器的IP)
  • 子域名 app1.domain2.com、app2.domain2.com:直接配置A/AAAA记录指向server2的公网IP

注意:禁止使用URL转发/301跳转配置子域名,这种方式会让浏览器先访问托管商服务器,再跳转至server2,导致SSL证书不匹配(浏览器识别的是托管商服务器的证书,而非你的通配符证书)。

如果server2是动态IP(IP经常变动),必须:

  • 启用动态DNS服务(如域名托管商自带的动态DNS功能,或第三方DynDNS服务)
  • 在server2上部署动态DNS客户端,实时检测IP变更并自动更新子域名的DNS记录,确保解析始终指向当前有效IP

2. 配置Apache虚拟主机与反向代理

利用server2的*.domain2.com通配符证书,为两个子域名创建虚拟主机,反向代理到本地应用端口:

配置app1.domain2.com(绑定443端口)

创建配置文件/etc/apache2/sites-available/app1.domain2.com.conf:

<VirtualHost *:443>
    ServerName app1.domain2.com
    
    # 启用SSL并加载通配符证书
    SSLEngine on
    SSLCertificateFile /path/to/your/wildcard.crt
    SSLCertificateKeyFile /path/to/your/wildcard.key
    SSLCertificateChainFile /path/to/your/chain.crt  # 如有证书链需添加
    
    # 反向代理到本地app1的443端口(若app1为HTTP服务,改为http://localhost:443)
    ProxyPreserveHost On
    ProxyPass / http://localhost:443/
    ProxyPassReverse / http://localhost:443/
</VirtualHost>

配置app2.domain2.com(映射444端口)

创建配置文件/etc/apache2/sites-available/app2.domain2.com.conf:

<VirtualHost *:443>
    ServerName app2.domain2.com
    
    SSLEngine on
    SSLCertificateFile /path/to/your/wildcard.crt
    SSLCertificateKeyFile /path/to/your/wildcard.key
    SSLCertificateChainFile /path/to/your/chain.crt
    
    # 反向代理到本地app2的444端口
    ProxyPreserveHost On
    ProxyPass / http://localhost:444/
    ProxyPassReverse / http://localhost:444/
</VirtualHost>

启用Apache必要模块并重启

执行命令启用反向代理与SSL模块:

a2enmod ssl proxy proxy_http
systemctl restart apache2

3. 验证与排查

  • 检查DNS解析:使用dig app1.domain2.com或nslookup app1.domain2.com确认子域名解析到server2的当前IP
  • 测试SSL握手:执行openssl s_client -connect app1.domain2.com:443,查看证书是否匹配、有无握手错误
  • 应用访问测试:在浏览器中访问https://app1.domain2.com和https://app2.domain2.com,确认SSL标识正常、应用可访问

常见问题排查:

  • 证书不匹配:检查子域名的DNS记录是否直接指向server2,Apache虚拟主机的ServerName与子域名完全一致
  • 应用无法访问:检查server2防火墙是否开放443端口,本地应用是否允许Apache访问,反向代理的端口配置是否正确

内容的提问来源于stack exchange,提问作者chrisatbcae

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:10:15