2017-05-06 1 views
1

J'ai un NodeJS app courir derrière une configuration Apache en utilisantProxyPass. Le HTTPS est configuré en utilisant Letsencrypt.Poignée demande Letsencrypt Acme-défi

Comme vous le savez probablement, pour valider un certificat Letsencrypt, nous devons gérer une requête comme celle ci-dessous, envoyée par le serveur Letsencrypt.

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

Actuellement, les résultats de la requête dans un 404 Not Found parce que le ProxyPass rediriger la demande directement à mon NodeJS application qui ne gère pas cette demande.

  • Une solution serait de définir un itinéraire dans mon application de NodeJS pour gérer la demande
  • Une autre solution serait de détecter la demande dans Apache et au lieu d'acheminer la demande à l'application NodeJS, route directement à le dossier contenant le répertoire .well-known.

Je voudrais utiliser la solution Apache, mais je ne suis pas en mesure de trouver la bonne façon de le faire.

chemin vers le répertoire bien connu

/var/www/html/.well-known/

Mon vhost réglage

<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> 

Si vous avez des suggestions, ne hésitez pas! Merci!

Répondre

1

Si vous souhaitez exclure le répertoire .well-known, il vous suffit d'ajouter une exclusion. Ajouter ce qui suit avant les ProxyPass lignes existantes:

ProxyPass /.well-known/ ! 

Et vous devriez être tous ensemble. Voir la documentation ProxyPass pour plus d'informations.