我正在尝试在我的网站上将 Letsencrypt (HTTPS) 与 Cloudflare (HTTP) 结合使用,但我对此感到困惑。
该域没有根文件夹
访问域名将被重定向到其中一个子域名
- domain.com -> sub1.domain.com
我有很多子域名
- domain.com 重定向至 sub1.domain.com
- sub1.域名.com
- sub2.域名.com
- ETC..
我正在使用带有 apache 的 ubuntu 服务器 16.04。
我的问题是,如何使用上述配置(domain.com 没有根文件夹)通过 Cloudflare 将 Letsencrypt 用于我的网站?
谢谢
答案1
您可以在 apache 中设置一个 vhost,例如用于 letsencrypt,并将“.well-known”文件夹代理到该域。
步骤 1:设置 Let's Encrypt vhost
<VirtualHost *:80>
ServerName lets-encrypt-proxy.domain.com
DocumentRoot /var/www/letsencrypt
</VirtualHost>
步骤2:配置ProxyPass
您可以在 /etc/httpd/conf.d/letsencrypt.conf 中设置此 ProxyPass,或者在指定的 vhost 中直接配置。如果您在 /etc/httpd/conf.d/letsencrypt.conf 中设置文件,请将以下行复制到此文件中:
ProxyPass /.well-known/acme-challenge/ http://letsencrypt.domain.com/.well-known/acme-challenge/
确保在您现有的虚拟主机中,文件正确重定向到 proxypass,例如,或者您将 ProxyPass 直接发布到虚拟主机:
<VirtualHost *:80>
...
RewriteEngine On
RewriteRule ^/?.well-known/acme-challenge/ - [L]
...
</VirtualHost>