2017-10-12 8 views
1

J'utilise Apache 2.4 sur Windows Server 2008 R2.HTTPS casse sur les clients externes lors de la redirection HTTP vers HTTPS

Sur le serveur lui-même et tous les clients internes à l'entreprise, HTTP fonctionne correctement et HTTPS fonctionne correctement. Rediriger du HTTP au HTTPS fonctionne également bien.

Sur les clients extérieurs à la société (c'est-à-dire, une machine domestique), HTTP fonctionne correctement et HTTPS fonctionne correctement. Cependant, la redirection de HTTP vers HTTPS est cassée.

Le message d'erreur qui s'affiche est le suivant: ERR_CERT_AUTHORITY_INVALID.

Lorsque cette erreur se produit, si je regarde les détails du certificat, ils indiquent que le certificat est délivré à "localhost.localdomain". Je n'ai pas trouvé ce nom de domaine dans mes fichiers de configuration Apache. Les détails indiquent également que l'organisation du certificat est notre fournisseur de services Internet et a été émise le 7 mai 2011 et expire le 4 mars 2021. Aucun de ces détails de certificat n'est vrai de notre certificat actuel. Notre certificat a été délivré par Digicert et arrive à échéance en 2019.

Lorsque j'utilise SSL Labs pour diagnostiquer, le test ne fonctionne même pas complètement et le message d'erreur suivant apparaît:

Certificate name mismatch 
Try these other domain names (extracted from the certificates): 

    localhost.localdomain 

Ce sont mes configs VirtualHost :

<VirtualHost *:80> 
ServerName www.example.com:80 
ServerAlias example.com:80 

RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteRule ^/?(.*)$ https://www.example.com/$1 [NE,L,R=301] 
</VirtualHost> 


<VirtualHost *:443> 
ServerName www.example.com:443 
ServerAlias example.com:443 
SSLEngine on 
SSLCertificateFile "C:\https\star_example_com.crt" 
SSLCertificateKeyFile "C:\https\star_example.com.key" 
SSLCertificateChainFile "C:\https\DigiCertCA.crt" 

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www.example.com$ [NC] 
RewriteRule ^/?(.*)$ https://www.example.com/$1 [NE,L,R=301] 
</VirtualHost> 

J'ai aussi essayé de rediriger l'aide de la commande suivante redirect, mais la même chose se produit:

Redirect permanent/https://www.example.com/ 
+0

Il semble que vous ayez installé le mauvais certificat. Êtes-vous sûr que le (s) fichier (s) que vous avez reçu de Digicert sont dans les endroits listés dans httpd.conf? Avez-vous arrêté et redémarré Apache? – hymie

+0

1. Oui, les certs sont ceux de Digicert. En fait, HTTPS fonctionne pleinement et montre notre certificat exact en interne * et * en externe. Cela ne fonctionne pas en externe une fois que j'active la redirection. C'est seulement alors que le certificat inconnu/mystérieux apparaît. 2. Oui, j'ai arrêté et démarré le service Apache à de nombreuses reprises en essayant de le diagnostiquer. – JasonF

Répondre

0

Donc, nous l'avons compris. Il a très peu à voir avec HTTPS ou la redirection.

Nous avons un serveur de basculement de site Web qui se déclenche s'il détecte que notre site principal est hors ligne ou fonctionne mal. Eh bien, apparemment, la logique de basculement détectée 301/302 redirige comme des échecs. Le certificat mystérieux était servi par le serveur de secours.

Nous avons dû modifier la logique de basculement pour ne plus voir les redirections comme des échecs.