SSL et ProxyPass

js server en cours d'exécution sur 8200 et j'ai juste obtenu des certificates SSL pour mon domaine. Je souhaite pouvoir diffuser ma page sur HTTPS.

Jusqu'à présent, mon file de configuration apache est tellement

Fichier: /etc/apache2/sites-enabled/synsis.conf

 <VirtualHost *:443> ServerAdmin sova.k@gmail.com ServerName www.synsis.live ServerAlias synsis.live SSLEngine On SSLProxyEngine On SSLCertificateFile "/home/vas/synsis.live/certs/domain.crt" SSLCertificateKeyFile "/home/vas/synsis.live/certs/domain.key" SSLCertificateChainFile "/home/vas/synsis.live/certs/intermediate.pem" ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass https://localhost:8200/ ProxyPassReverse https://localhost:8200/ </Location> </VirtualHost> 

Cependant, mon site ne se charge pas à l'aide de cette configuration. Des idées?

apachectl -t

 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message Syntax OK 

et apachectl -S

 VirtualHost configuration: *:80 is a NameVirtualHost default server 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1) port 80 namevhost ch.mu (/etc/apache2/sites-enabled/c.conf:1) port 80 namevhost www.hai.run (/etc/apache2/sites-enabled/hai.conf:3) alias hai.run port 80 namevhost practicalhuman.org (/etc/apache2/sites-enabled/ph.conf:4) alias www.practicalhuman.org *:443 www.synthesis.live (/etc/apache2/sites-enabled/synthesis.conf:5) ServerRoot: "/etc/apache2" Main DocumentRoot: "/var/www" Main ErrorLog: "/var/log/apache2/error.log" Mutex ssl-stapling: using_defaults Mutex proxy: using_defaults Mutex ssl-cache: using_defaults Mutex default: dir="/var/lock/apache2" mechanism=fcntl Mutex mpm-accept: using_defaults Mutex watchdog-callback: using_defaults PidFile: "/var/run/apache2/apache2.pid" Define: DUMP_VHOSTS Define: DUMP_RUN_CFG User: name="www-data" id=33 not_used Group: name="www-data" id=33 not_used 

Votre configuration contient trois de mes principales fautes concernant les exemples de configuration dans la nature

  1. L'utilisation de blocs <Proxy *> lors de la configuration d'un proxy inverse. <Proxy> blocs <Proxy> sont presque exclusivement utilisés pour configurer les proxies avancées non inversées. Dans votre cas, il n'est pas nécessaire.
  2. L'utilisation de ProxyPass intérieur des blocs d'location. La meilleure pratique est d'utiliser la version 2 arguments de ProxyPass less qu'il n'y ait pas d'alternative.
  3. Utilisation des directives d'autorisation Apache v2.2 dans Apache v2.4. Je vous recommand fortement de modifier toujours toutes vos directives v2.2 Allow , Order , Satisfy et require les nouveaux <RequireAny> directive et <RequireAny> et <RequireAll> .
  4. La directive SSLProxyEngine est utilisée pour configurer votre server lorsque vous êtes à la search d'un service basé sur SSL et n'a rien à voir avec si votre hôte virtuel réel est un SSL ou oui (Oui, je sais que j'ai dit 3, mais c'est très mineur , et je l'ai ajouté parce que vous avez répondu en disant que votre back-end n'était pas activé par SSL 🙂

Essayez comme base, et espérons que "propre", la configuration et le travail à partir de là. * f ça ne fonctionne pas, dites-nous ce qui se passe réellement plutôt que de dire simplement "ça ne marche pas".

 <VirtualHost *:443> ServerAdmin sova.k@gmail.com ServerName www.synsis.live ServerAlias synsis.live SSLEngine On SSLProxyEngine On SSLCertificateFile "/home/vas/synsis.live/certs/domain.crt" SSLCertificateKeyFile "/home/vas/synsis.live/certs/domain.key" SSLCertificateChainFile "/home/vas/synsis.live/certs/intermediate.pem" # This is the default anyway, but no harm having it explicitly set ProxyRequests Off # You say in a comment your backend is not SSL, but your original configuration # sortinges to proxy to an SSL enabled service. This is almost certainly # why it originally failed ProxyPass / http://localhost:8200/ ProxyPassReverse / http://localhost:8200/ </VirtualHost> 

Est-ce que votre back-end ssl?

si non:

 <VirtualHost *:443> ServerAdmin sova.k@gmail.com ServerName www.synsis.live ServerAlias synsis.live SSLEngine On SSLProxyEngine On SSLCertificateFile "/home/vas/synsis.live/certs/domain.crt" SSLCertificateKeyFile "/home/vas/synsis.live/certs/domain.key" SSLCertificateChainFile "/home/vas/synsis.live/certs/intermediate.pem" ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://localhost:8200/ ProxyPassReverse http://localhost:8200/ </Location> </VirtualHost> 

Si c'est:

 <VirtualHost *:443> ServerAdmin sova.k@gmail.com ServerName www.synsis.live ServerAlias synsis.live SSLEngine On SSLProxyEngine On SSLCertificateFile "/home/vas/synsis.live/certs/domain.crt" SSLCertificateKeyFile "/home/vas/synsis.live/certs/domain.key" SSLCertificateChainFile "/home/vas/synsis.live/certs/intermediate.pem" ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> SSLProxyEngine on ProxyPass https://localhost:8200/ ProxyPassReverse https://localhost:8200/ </Location> </VirtualHost>