gpt4 book ai didi

apache - 使用 HTTPS 从外部域到 CloudFlare DNS 的 CNAME

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:16 26 4
gpt4 key购买 nike

为客户开发的站点应该位于域 test.clientdomain.com 上,显然我无法控制该域。

我在 test.mydomain.com 上使用 CloudFlare 作为 DNS 托管网站。在我的服务器上,我有一个自签名的 SSL 证书,我在 CloudFlare 上使用 SSL 选项 Full SSL

因为生产服务器的 IP 地址可能会改变,所以我不想给客户端这个服务器的 IP 地址(这样他就可以在他的 DNS 文件中添加一个 A 记录)。我希望他们将指向 test.clientdomain.com 的 CNAME 记录添加到我的 test.mydomain.com。在这种情况下,如果 IP 地址发生变化,我可以在我的 DNS 文件中进行更改,客户不必担心。为了完成这项工作,我还设置了一个如下所示的虚拟主机文件:

<VirtualHost *:80>
ServerName test.clientdomain.com
ServerAlias *.test.clientdomain.com

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/test.mydomain.com

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

<Directory /var/www/html/test.mydomain.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
</VirtualHost>

此设置适用于 HTTP。当我想添加 HTTPS 时,我也为端口 443 创建了一个 vhost 记录:

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName test.clientdomain.com
ServerAlias *.test.clientdomain.com

DocumentRoot /var/www/html/test.mydomain.com

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

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key

<Directory /var/www/html/test.mydomain.com>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>

我打开了 CloudFlare 代理,因此所有请求都通过 CloudFlare 代理,但出于某种原因,它给了我以下错误:

SSL connection error

ERR_SSL_PROTOCOL_ERROR

我在这个 Apache 上运行了几个其他 Web 应用程序,它们都带有一个用于 HTTP 和 HTTPS 的 vhost 文件,并且它们运行良好(因此自签名证书没有问题),唯一的区别是在这个如果请求首先转到一个完全独立的域 (test.clientdomain.com),而不是直接转到我自己的域 *.mydomain.com

总而言之,test.clientdomain.com 的 DNS 文件将具有:

CNAME test.clientdomain.com -> test.mydomain.com

test.mydomain.com 的 DNS 文件将具有:

CNAME test.mydomain.com -> production.mydomain.com
A production.mydomain.com -> 123.123.123.123 (IP address of my production server)

我是否需要针对此用例进行不同的配置?

最佳答案

从您的问题中我可以了解到,您正在为该 Apache 中运行的各种 Web 应用程序使用相同的证书。因此它必须是 test.mydomain.comproduction.mydomain.com*.mydomain.com 的证书。

但是,对于此访问,您需要 test.clientdomain.com 的证书。否则,证书的名称将与 URL 中的名称不匹配,因此无法继续。我不知道 CloudFlare 代理,所以我无法判断该错误是否真的与名称的差异有关,或者您还有其他问题。

我本应要求提供更多关于此的信息,但我没有足够的声誉来发表评论。希望这会有所帮助。

关于apache - 使用 HTTPS 从外部域到 CloudFlare DNS 的 CNAME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33014150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com