D'accord, je n'ai jamais eu d'expérience avec SSL / HTTPS auparavant, je n'ai jamais traité qu'avec HTTP standard. Récemment, j'ai commencé à travailler sur un site qui aura besoin de SSL. Alors bien sûr, je suis sorti et j'ai cherché comment et commencé. J'ai réussi à installer le certificat SSL - le cadenas vert apparaît et le serveur répond aux demandes HTTPS sur le port 443. Le problème que j'ai, c'est que peu importe ce que je fais, je ne peux pas faire apparaître de pages en utilisant HTTPS / SSL, cependant, ils semblaient bien sur le port 80 / HTTP (jusqu'à ce que je redirige HTTP vers HTTPS).
En termes simples, je peux accéder au site HTTPS très bien, mais mes pages ne sont pas envoyées, mais un 404 est envoyé pour chaque demande.
/etc/apache2/sites-available/[name
<VirtualHost *:80>
ServerName [serverName]
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
</VirtualHost>
<VirtualHost *:443>
ServerName [serverName]
ServerAdmin [email]
DocumentRoot [docRoot]
# I know the following SSL cert stuff is correct
SSLEngine On
SSLCertificateFile [...]/[domain].crt
SSLCertificateKeyFile [...]/[certificate].key
SSLCertificateChainFile [...]/[theotherone].crt
ErrorLog ${APACHE_LOG_DIR}/[custom]_error.log
CustomLog ${APACHE_LOG_DIR}/[custom]_access.log combined
<Directory "[docRoot]">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Je ne sais pas s'il y a autre chose que vous voudrez peut-être regarder, ou tout autre détail, mais si c'est le cas, faites-le moi savoir.
ÉDITER:
Après quelques recherches dans les fichiers de configuration, j'ai établi que pour une raison quelconque, lors de la connexion à HTTPS, le serveur utilise la racine du document dans la configuration par défaut (/ var / www /) mais cette configuration par défaut n'est pas activée avec a2ensite. Je n'arrive pas à comprendre où se trouve la configuration à l'origine de cela
la source
Rewrite
directives donnent l'impression que vous essayez d'exécuter Apache derrière un proxy inverse mal configuré. Si votre Apache sert le domaine directement sans aucun proxy, vous devez simplement supprimer toutes lesRewrite
directives et les remplacer par une seuleRedirect
. Et configurez des fichiers journaux distincts pour chacun deVirtualHost
sorte que vous puissiez voir exactement quelVirtualHost
processus chaque demande.Réponses:
Est-il absolument nécessaire de rediriger toutes les requêtes http vers https? Parce qu'il semble que c'est ce que vous essayez de faire ici.
Je vous suggère de commencer par supprimer les lignes suivantes de votre conf:
Je soupçonne que la syntaxe peut être erronée là-bas. Essayez ensuite de vous reconnecter sur chaque protocole http: // et https: //.
la source
Je ne me souviens pas exactement comment je l'ai trouvé, mais je suis tombé sur quelque chose quelque part qui a suggéré de mettre:
<VirtualHost _default_:443>
Au lieu de:
<VirtualHost *:443>
Depuis le remplacement de cela, mon SSL fonctionne parfaitement.
la source
Essayez de modifier votre fichier pour qu'il ressemble à ceci:
Ceci est une conf très basique, si cela fonctionne, ajoutez vos redirections si nécessaire.
Si cela ne fonctionne pas, veuillez montrer votre ssl.conf
la source