3 votes

Mise à jour des certificats SSL et les conditions de réécriture ne fonctionnent plus pour apache2

Je travaille sur un serveur Ubuntu 14.04 avec Apache2 v2.4.7.

Récemment, notre site a reçu des erreurs de Chrome disant que nous devions mettre à jour nos certificats. Je l'ai fait en début de semaine, en mettant à jour les certificats SSL et en redémarrant Apache. Quelques jours plus tard, mon client m'a signalé que certaines images et certains fichiers n'étaient plus accessibles via leur serveur de reporting. Le serveur de reporting utilisait HTTPS pour accéder aux images et aux fichiers.

Mon fichier conf contient ceci, qui n'a pas changé depuis que j'ai hérité de ce serveur :

<VirtualHost *:80>
    ServerName abc.example.com
    DocumentRoot /home/deployer/html/_abc/public
    RewriteEngine On

    RewriteCond %{HTTPS} off
    RewriteCond %{REQUEST_URI} !^/files/
    RewriteCond %{REQUEST_URI} !^/images/checksheets/
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</VirtualHost>

<VirtualHost *:443>
    ServerName abc.example.com
    DocumentRoot /home/deployer/html/_abc/public
    SSLEngine on
    SSLProtocol all -SSLv2 -SSLv3
    SSLCipherSuite          ECD....C3-SHA:!DSS
    SSLHonorCipherOrder     on
    SSLCompression          off
    SSLCertificateFile /etc/ssl/ssl_certificate.crt
    SSLCertificateKeyFile /etc/ssl/abc_staging.key
    SSLCertificateChainFile /etc/ssl/IntermediateCA.crt
    # HSTS (mod_headers is required) (15768000 seconds = 6 months)
    Header always set Strict-Transport-Security "max-age=15768000"
    <Directory /home/deployer/html/_abc/public>
        AllowOverride all
        Options FollowSymLinks
        # -MultiViews
        #   Order allow,deny
        Require all granted
    </Directory>

La seule chose que j'ai faite sur le serveur a été de mettre à jour les certificats ssl_certificate et IntermediateCAs et de redémarrer Apache, donc je ne suis pas sûr de ce qui s'est passé. La dernière mise à jour du certificat SSL remonte probablement à environ un an, et la façon dont le serveur de rapports récupère les images/fichiers n'a pas changé. Je redémarre également Apache assez fréquemment et ce problème ne s'était jamais posé auparavant.

Sur un coup de tête, mon client a créé un nouveau rapport à l'aide de http au lieu de https et cela semble fonctionner parfaitement.

Ma question est la suivante : qu'est-ce qui a pu changer pour que le serveur n'accepte soudainement plus les données de la base de données ? https connexions pour les images/fichiers ?

EDIT : Il s'agit uniquement de requêtes GET (il n'y a pas d'actions POST/DELETE).

De même, la navigation vers l'image (ou le fichier) en tant que https://abc.example.com/images/path/to/file.jpg avec HTTPS fonctionne parfaitement. Mais lorsque le serveur de rapports utilise ce même lien, une page blanche s'affiche.

Les journaux d'accès d'Apache affichent le lien ci-dessus comme un succès lorsque l'on navigue directement, mais lorsque le serveur de rapports l'utilise et que je navigue vers le rapport, les journaux d'accès d'Apache n'affichent rien du tout.

1voto

kizzx2 Points 6919

Suggestions de dépannage :

  1. Veuillez confirmer votre environnement :

    • Serveur Ubuntu 14.04 avec Apache2 v2.4.7.
    • Votre fichier httpd.conf est configuré pour servir les deux protocoles HTTP ( :80) et HTTPS ( :443).
    • Votre configuration de certificat (affichée ci-dessus) est correcte, et les fichiers et (SSLCertificateFile, etc.) existent tous et n'ont pas été "corrompus".
  2. Veuillez confirmer la description du problème :

    • "Tout fonctionnait avant que vous ne mettiez à jour votre certificat SSL, le problème a quelque chose à voir avec le nouveau certificat.
    • Tous les utilisateurs qui tentent d'obtenir des rapports via https (EXEMPLE https://apache-server.com/myreport ) échouent - ils ne voient que du "blanc". Est-ce exact ?
    • Les mêmes utilisateurs peuvent obtenir les mêmes rapports s'ils utilisent http (EXEMPLE : http://apache-server.com/myreport ). Est-ce également correct ?
    • Les rapports ont-ils quelque chose de "spécial" ? S'agit-il, par exemple, d'une application web ?
  3. Je suis curieux de savoir si TOUS https est "cassé", ou simplement "certaines choses" sont inaccessibles.

    Veuillez créer un fichier test (EXEMPLE : /var/www/html/myreport/hello.html ) et vérifiez si vous pouvez le lire à la fois avec http et https.

  4. Lors de vos tests, veuillez utiliser l'un de ces outils (ou les deux) sur votre PC pour analyser les tentatives de connexion du navigateur (et ainsi aider à déterminer le point de défaillance spécifique) :

  5. N'hésitez pas à nous faire part de vos découvertes.

PS :

Voici quelques conseils supplémentaires. En particulier, "activer la journalisation verbeuse" :

https://www.futurehosting.com/blog/troubleshooting-the-most-common-apache-problems-youll-encounter/

PPS :

Je voudrais PAS désactivez http jusqu'à ce que vous ayez résolu le problème :

  • Il s'agit en tout cas d'une solution de contournement temporaire pour les personnes qui pourraient avoir besoin de rapports.
  • Le fait de pouvoir comparer les comportements http et https facilitera le dépannage.

0voto

risa_risa Points 131

Nous avons trouvé la solution. Alors que le serveur Apache fonctionnait correctement, nous avions apparemment enregistré un paramètre DH spécifique dans le fichier de certificat. Cet extrait a été ajouté parce que le serveur de rapports qui demande les images et les fichiers fonctionne sous Java 6. Et Java 6 ne peut gérer que des paramètres DH de 1024bit.

Ainsi, dans mon nouveau ssl_certificate.crt J'ai ajouté

-----BEGIN DH PARAMETERS-----
MIGHAoGBAP//////////yQ/aoiFowjTExmKLgNwc0SkCTgiKZ8x0Agu+pjsTmyJR
Sgh5jjQE3e+VGbPNOkMbMCsKbfJfFDdP4TVtbVHCReSFtXZiXn7G9ExC6aY37WsL
/1y29Aa37e44a/taiZ+lrp8kEXxLH+ZJKGZR7OZTgf//////////AgEC
-----END DH PARAMETERS----- 

de http://httpd.apache.org/docs/current/ssl/ssl_faq.html#javadh

Malheureusement, notre certificat passe de A+ à B, mais je ne suis pas autorisé à faire passer le serveur Java de la version 6 à une version plus récente, quelle qu'elle soit.

Une fois que j'ai ajouté cet extrait à mon certificat SSL, le serveur de rapports a pu accéder aux images par l'intermédiaire de l'Internet. https !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X