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!