防止在使用转发给dynamicDNS域名的子域时出现“无效安全证书”(ssl_error_bad_cert_domain)

我一直在谷歌浏览,到目前为止还没有find一个解决我的情况,这是奇怪的,因为我敢肯定,这是试图成千上万次,甚至数百万次。

我想在我们的家中为客户托pipe开发站点,以便在将它们部署到任何他们想要生产的托pipe解决scheme之前进行testing。 这是我正在使用的:

  • 一个dynamic的DNS服务(每年$ $$对于一个固定IP每个月$$) – 我们将其称为foobar.dnsalias.net
  • 所谓的“掩码转发”,由我的域名注册机构免费提供,将特定的子域名转发到dynamicDNS域名的唯一端口 – 例如dev1.mydomain.com转到foobar.dnsalias.net:8081,dev2.mydomain。 com去foobar.dnsalias.net:8082等…
  • 端口转发在我的路由器转发每个独特的端口到我自己的私人局域网上的IP – 例如8081到192.168.1.81,8082到192.168.1.82等…
  • 如果IP使用ifcfg-eth0-range0,则使用范围虚拟接口
  • httpd.conf中的多个Listen指令用于基于IP的虚拟主机

所有这一切都工作得很好,但现在我想要使用https的所有我的子域名,所以我买了一个通配符证书(不pipe你信不信,证书加dynamicdns的工程是36%至41%的便宜比我的ISP为一个固定IP收取的每月费用),并且我已经使用VirtualHost标记中的相应SSLCertificate *指令成功安装了它。

麻烦的是,浏览器抱怨不可信的连接,因为尽pipe所谓的“掩蔽”,它仍然意识到,它正在通过dynamicDNS域redirect。

foobar.dnsalias.net:8081 uses an invalid security certificate. The certificate is only valid for the following names: *.mydomain.com , mydomain.com (Error code: ssl_error_bad_cert_domain) 

我以为我可以使用一些mod_rewrite指令,但是我没有find正确的组合RewriteCond和RewriteRule模式和标志,或者我误解了与“掩码转发”。

  RewriteEngine on RewriteCond %{HTTP_HOST} foobar.dnsalias.net [NC] RewriteRule ^(.*) https://dev1.mydomain.com:8081/$1 [P] 

有人可以解释如何使这项工作?

总之,这是行不通的。

您的dynamicDNS提供商正在响应HTTPredirect从dev1.mydomain.com到foobar.dnsalias.net:8081地址; 这是您可以基于HTTP主机头redirect并同时更改端口号的唯一方法。

我能想到的唯一方法是将CNAME whatever.mydomain.com设置为foobar.dnsalias.net,并从正确的开发服务器为服务器stream量设置反向代理。

这样,当您的客户(Acme Incorporated)启动https://acme.mydomain.com时 ,DNS将直接parsing为您的dynamicIP(通过CNAME),您的反向代理将会看到主机头为“acme.mydomain”。 COM”。 然后它可以去dev2.mydomain.com获取相关的内容。