我有一个 NodeJs应用使用 ProxyPass 在Apache配置后面运行。使用 Letsencrypt 设置HTTPS。
您可能知道,要验证Letsencrypt证书,我们必须处理由Letsencrypt服务器发送的请求,如下一个请求。
http://sub.afakedomain.com/.well-known/acme-challenge/some-random-stringhere
目前,请求会导致 404 Not Found ,因为ProxyPass将请求直接重定向到我的NodeJs应用程序,该应用程序没有处理此请求。
.well-known
目录的文件夹。我想使用 Apache解决方案,但我无法找到正确的方法。
知名目录的路径
/var/www/html/.well-known/
我的虚拟主机设置
<VirtualHost *:80>
DocumentRoot /var/www/html/fail
ServerName sub.afakedomain.com
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
</VirtualHost>
<VirtualHost *:443>
ProxyPreserveHost On
ProxyRequests Off
ServerName sub.afakedomain.com
Proxypass / http://localhost:5555/
ProxyPassReverse / http://localhost:5555/
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/afakedomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/afakedomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/afakedomain.com/chain.pem
SSLCACertificateFile /etc/letsencrypt/live/afakedomain.com/fullchain.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
如果您有一些建议,请随意!谢谢!