Soucis de configuration reverse proxy

Bonjour

Je suis en train de configurer un reverse proxy sous debian 8.2

j’ai un serveur owncloud derriere ce reverse proxy

la redirection HTTP vers HTTPS fonctionne parfaitement (c’est au cas ou les gens oublie de taper le s de https). testé quand je n’ai dirigé vers mon reverse proxy que le port 80 de mon ip publique.

Qand mon ip publique tape dans le 443 que j’ai redirigé directement sur le serveur owncloud, la communication et la connexion sont parfaites.

donc maintenant je cherche a diriger le port 443 sur le reverse proxy et a acceder a mon serveur cloud et la ben ça plante et je ne vois pas pourquoi.

J’ai essayé cette methode https://blog.victor-hery.com/article9/configurer-un-reverse-proxy-apache-http-https qui ne fonctionne pas.

Voila le fichier owncloud.conf du reverse proxy

## Config reverse proxy owncloud ##
<VirtualHost 172.16.0.15:80>
        ServerName owncloud.mondomaine.lan
        ServerAlias owncloud.mondomaine.com
        RedirectMatch ^/$ http://owncloud.mondomaine.com
        RewriteEngine On
        RewriteCond %{HTTP:X-Forwarded-Proto} !https
        RewriteRule / https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
        ProxyPass / https://172.16.0.116
        ProxyPassReverse / https://172.16.0.116

</VirtualHost>

<VirtualHost 172.16.0.15:443>
        ServerName owncloud.mondomaine.lan
        ServerAlias owncloud.mondomaine.com
        SSLEngine On
        SSLCertificateFile /etc/apache2/SSL/owncloud.pem
        SSLCertificateKeyFile /etc/apache2/SSL/owncloud.key
        ProxyRequests Off
        ProxyPreserveHost On
        ProxyPass / https://172.16.0.116
        ProxyPassReverse / https://172.16.0.116
        ErrorLog /var/log/apache2/owncloud-error.log
        LogLevel warn
        CustomLog /var/log/apache2/owncloud-access.log combined
</VirtualHost>

Coté serveur 172.16.0.116 qui heberge owncloud voila la conf apache

<virtualHost 172.16.0.116:80>
       ServerName owncloud.mondomaine.com
       Redirect permanent / https://owncloud.mondomaine.com
</VirtualHost>

<VirtualHost 172.16.0.116:443>
        ServerName owncloud.mondomaine.lan
        ServerAlias owncloud.mondomaine.com
        DocumentRoot "/var/www/owncloud/"
        <Directory "/var/www/owncloud/">
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        SSLEngine on
        SSLVerifyClient none
        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0ean-shutdown downgrade-1.0 force-response-1.0
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
        SSLCertificateFile /etc/apache2/certs/cloud.crt
        SSLCertificateKeyFile /etc/apache2/certs/cloud.key
        SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
        ServerSignature Off
        <IfModule mod_headers.c>
        Header always set Strict-Transport-Security "max-age=15768000;  includeSubDomains; preload"
        </IfModule>
        ErrorLog /var/log/apache2/owncloud-error.log
        LogLevel warn
</virtualHost>

si je me connecte donc via le reverse proxy, voila le retour de firefox:

Internal Server Error
The server encountered an internal error or
misconfiguration and was unable to complete
your request.
Please contact the server administrator at 
 [no address given] to inform them of the time this error occurred,
 and the actions you performed just before this error.
More information about this error may be available
in the server error log.

Apache/2.4.10 (Debian) Server at owncloud.mondomaine.com Port 443

après redemarrage de apache voila les retours sur mon fichier log

[Fri May 13 11:00:59.786255 2016] [ssl:warn] [pid 5569:tid 140448067323776] AH01906: owncloud.mondomaine.lan:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Fri May 13 11:00:59.786320 2016] [ssl:warn] [pid 5569:tid 140448067323776] AH01909: owncloud.mondomaine.lan:443:0 server certificate does NOT include an ID which matches the server name
    [Fri May 13 11:00:59.797360 2016] [ssl:warn] [pid 5570:tid 140448067323776] AH01906: owncloud.mondomaine.lan:443:0 server certificate is a CA certificate (BasicConstraints: CA == TRUE !?)
    [Fri May 13 11:00:59.797383 2016] [ssl:warn] [pid 5570:tid 140448067323776] AH01909: owncloud.mondomaine.lan:443:0 server certificate does NOT include an ID which matches the server name

et aprés avoir essayé de me connecter

[Fri May 13 11:03:46.301641 2016] [ssl:error] [pid 5574:tid 140447846496000] [remote 172.16.0.116:443] AH01961: SSL Proxy requested for owncloud.mondomaine.lan:443 but not enabled [Hint: SSLProxyEngine]
[Fri May 13 11:03:46.301685 2016] [proxy:error] [pid 5574:tid 140447846496000] AH00961: HTTPS: failed to enable ssl support for 172.16.0.116:443 (172.16.0.116)

j’ai pensé a un probleme de certificat et donc ai refait le certificat du reverseproxy en mettant en commonname/fqdn une fois le nom dns du serveur (owncloud.mondomaine.com) et une autre l’ip du serveur (172.16.0.116)

j’ai utilisé cette commande pour cela:

openssl req -new -x509 -days 1825 -nodes -out /etc/apache2/SSL/owncloud.pem -keyout /etc/apache2/SSL/owncloud.key

mais même message d’erreur.

bien sur la commande mod ssl a été activée sur le reverse proxy et sur le serveur owncloud

Bref la je ne comprend pas ou est mon erreur

Merci par avance pour votre aide

up :pensive:

Salut Minus,

Comme tu ne reçois aucune réponse je vais me permettre de partager un brin d’expérience, malheureusement je ne crois pas que cette dernière ne te donne de l’espoir.

J’ai fais un reverse proxy y a quelque temps déjà (entre un Apache en serveur et NGinX en reverse proxy); malheureusement il m’a été impossible de garder un flux continue en SSL entre Nginx et Apache pour la raison suivante (c’est ce que mes recherches à l’époques avaient donnée) :

Les header chiffré est déchiffré au niveau du reverse proxy et doit être chiffrer de nouveau pour être envoyer vers le serveur final (backend).

Pour les répartiteur de charge (loadbalancing) le même certificat SSL est présent sur le backend ET le LB.

j’espère que ce lient pourra t’aider :
http://univers-libre.net/posts/reverse-proxy-https.html

merci pour ton retour !

PS : après lecture en vertical, je crois que mon lien pourrait t’aider !

Merci pour ton aide

je vais essayer avec ce fichier de config

Le pire c’est que après je veux utiliser ce proxy apache pour ensuite rediriger vers un serveur loomio (donc nginx), d’après ce que tu m’a dit c’est loin d’être gagné.

Ben sinon au pire j’envisagerai la commande d’adresse ip supplémentaires.

Bon mon problème est résolu, et j’arrive même à utiliser la même config pour me connecter à mon serveur nginx qui est derrière le reverse proxy.

Pour archive et pour que cela serve à d’autres voila la config de mon fichier /etc/apache2/sites-available/owncloud.conf pour la partie https:

<VirtualHost "ipdemonreverseproxy":443>
        ServerName owncloud.mondomaine.lan
        ServerAlias owncloud.mondomaine.com
        SSLCertificateFile /etc/apache2/SSL/owncloud.pem
        SSLCertificateKeyFile /etc/apache2/SSL/owncloud.key
        ErrorLog /var/log/apache2/owncloud-error.log
        CustomLog /var/log/apache2/owncloud-access.log combined
        SSLProxyEngine On
        SSLProxyVerify none
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
        ProxyRequests     Off
        ProxyPreserveHost On
        # Si dessous je remplace "ipdemonserveurowncloud" par l'adresse IPV4 de mon serveur (par exemple: 192.168.52.10)
        ProxyPass         / https://"ipdemonserveurowncloud":443/ keepalive=On retry=5
        ProxyPassReverse  / https://"ipdemonserveurowncloud":443/
</VirtualHost>