处理极致挑战的Letsencrypt请求

时间:2017-05-06 11:33:51

标签: node.js apache lets-encrypt

我有一个 NodeJs应用使用 ProxyPass 在Apache配置后面运行。使用 Letsencrypt 设置HTTPS。

您可能知道,要验证Letsencrypt证书,我们必须处理由Letsencrypt服务器发送的请求,如下一个请求。

  

http://sub.afakedomain.com/.well-known/acme-challenge/some-random-stringhere

目前,请求会导致 404 Not Found ,因为ProxyPass将请求直接重定向到我的NodeJs应用程序,该应用程序没有处理此请求。

  • 解决方案是在我的NodeJs应用程序中定义一条路线来处理请求
  • 另一种解决方案是在Apache中检测请求,而不是将请求路由到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>

如果您有一些建议,请随意!谢谢!

0 个答案:

没有答案