Cloudflare Tunnel 无需使用 noTLSVerify?

Cloudflare Tunnel 无需使用 noTLSVerify?

我在运行 Apache 的 Ubuntu 服务器上设置了一个简单的域(实际上只是显示一个静态 HTML 文件);我使用 LetsEncrypt 设置它,它运行正常。我想要更高的安全性,所以决定使用 Cloudflare。

我通过 Cloudflare 设置了 DNS,一旦我设置 SSL 以使用 Cloudflare 证书(这样它就会停止“过多重定向错误”),它就可以完美地运行。这也非常有效。

然后我读到我可以使用隧道(然后不必使用端口转发 - 为我的家庭网络提供更好的安全性),所以我设置了一个 Cloudflare 隧道(按照本教程:https://www.youtube.com/watch?v=hrwoKO7LMzk

config.yml如果我在我的文件中设置它,我可以让它工作:

originRequest:
  noTLSVerify: true

我希望它在不包含该代码片段的情况下工作 - 因为我希望它是 CF 和我的 Apache 服务器之间的安全流量。

我的配置文件非常简单:

tunnel: <id>
credentials-file: /route/to/<id>.json

ingress:
  - hostname mydomain.com
    service: https://localhost:443

  - service: http_status404

我在 cloudflared 服务中看到的错误是这样的:

Request failed error="Unable to reach the origin service. The service may be down or it may not be responding to traffic from cloudflared: x509: certificate is valid for *.mydomain.com, mydomain.com, not localhost"

避免在我的配置中使用 noTLSVerify 但仍使隧道正常工作的最佳方法是什么?

我的 Apache VirtualHost 如下所示:

<VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName mydomain.com
        ServerAlias www.mydomain.com
        DocumentRoot /var/www/html/mydomain/public_html

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

Include /etc/letsencrypt/options-ssl-apache.conf
#Old Certs From LE
#SSLCertificateFile /etc/letsencrypt/live/mydomain.com-0001/chain.pem
#SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com-0001/private_key.pem
SSLCertificateFile /root/.cloudflared/cf_pem.pem
SSLCertificateKeyFile /root/.cloudflared/cf_key.key
</VirtualHost>

任何帮助将不胜感激。

如果将 noTLSVerify 设置为 true 不会带来任何危害/危险/安全风险,那么我会使用它,但除此之外,我宁愿不使用它 - 只是想不出如何不使用它!

答案1

它抱怨说您机器上的 LetsEncrypt 证书适用于*.mydomain.com,但cloudflared守护进程正尝试使用它来验证 的来源localhost。这里最简单的做法是将一个originRequest部分添加到您的入口规则中。

例如

ingress:
  - hostname mydomain.com
    service: https://localhost:443
    originRequest:
        originServerName: mydomain.com

这将告诉 cloudflared 的 TLS 验证算法接受该域的证书,即使它连接到不同的域。

https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/local-management/ingress/#origin-configuration

相关内容