我有一个NodeJs应用程序,它使用ProxyPass在Apache 后面运行。HTTPS是使用Letsencrypt设置的。
您可能知道,要验证Letsencrypt证书,我们必须处理如下所示的请求,该请求是由Letsencrypt服务器发送的。
http://sub.afakedomain.com/.well-known/acme-challenge/some-random-stringhere
目前,请求的结果是404找不到,因为ProxyPass将请求直接重定向到没有处理此请求的NodeJs应用程序。
.well-known目录的文件夹。我想使用-- Apache解决方案,但我无法找到正确的方法。
路径到著名目录
/var/www/html/.well-known/
我的vhost设置
<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>如果您有一些建议,请放心!谢谢!
发布于 2017-05-08 02:15:44
如果您想从代理中排除.well-known目录,只需添加一个排除。在现有的ProxyPass行之前添加以下内容:
ProxyPass /.well-known/ !你应该都准备好了。有关更多信息,请参见ProxyPass文档。
https://stackoverflow.com/questions/43819966
复制相似问题