HTTP naar HTTPS ongeacht de url balk

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marthijn Buijs

Marthijn Buijs

02/04/2017 10:22:46
Quote Anchor link
Goedemorgen,

Ik heb een server gekoppeld aan een domeinnaam, daarbij heb ik een HTTPS-certificaat. Alleen het probleem is ik heb alleen een certificaat voor de website met www. ervoor.

Hoe kan ik zorgen dat het wordt geredirect naar HTTPS en www. ongeacht wat er ingetypt wordt in de URL-balk.

Op dit moment heb ik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteEngine On
RewriteCond %{SERVER_NAME} =www.domein.nl [or]
RewriteCond %{SERVER_NAME} =domein.nl
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent]

In mijn Apache 2 configuratie staan van poort 80.
Maar dit werkt natuurlijk niet wanneer je naar https://domein.nl gaat, er staat geen www. voor.

Blijkbaar werkt het nu zoals ik wil maar ik zou graag Apache 2 configuratie gebruiken óf het aanpassen van de redirects in YourHosting (Default => https://www.domein.nl).
Ik vind dit slordig en ik zou graag één van de twee gebruiken.


Alvast bedankt voor het meedenken!
Gewijzigd op 02/04/2017 10:27:32 door Marthijn Buijs
 
PHP hulp

PHP hulp

20/04/2024 15:01:13
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/04/2017 11:00:07
Quote Anchor link
Zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
 
Marthijn Buijs

Marthijn Buijs

02/04/2017 11:23:20
Quote Anchor link
Dan is het probleem dat hij van http://domein.nl naar https://domein.nl gaat. Dit gaat niet werken als ik een certificaat heb voor www.domein.nl
Gewijzigd op 02/04/2017 11:24:35 door Marthijn Buijs
 
- Ariën  -
Beheerder

- Ariën -

02/04/2017 11:25:15
Quote Anchor link
Ikzelf gebruik dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
# Alle non-www request doorsturen naar www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Alles rewriten naar https met de huidige www-hostname.
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Gewijzigd op 02/04/2017 11:25:27 door - Ariën -
 
Ben van Velzen

Ben van Velzen

02/04/2017 11:26:33
Quote Anchor link
Ik heb nog geen certificaatboer gezien die de beide varianten niet opneemt in een certificaat, dus dat punt gaat niet echt op. Wat gebeurt er als je van de laatste regel van Ivo jouw eigen regel maakt?
 
Marthijn Buijs

Marthijn Buijs

02/04/2017 11:32:07
Quote Anchor link
En als iemand naar https://domein.nl gaat? (zonder www.)
 
- Ariën  -
Beheerder

- Ariën -

02/04/2017 11:45:43
Quote Anchor link
In mijn geval zal diegene toch doorgestuurd moeten worden. Het is wel natuurlijk zo dat http en https op dezelfde web-root uit moeten komen.
 
Marthijn Buijs

Marthijn Buijs

02/04/2017 11:48:01
Quote Anchor link
Ik heb 2 VirtualHosts in Apache 2, voor poort 80 en 443. Het is dus de bedoeling dat ik jouw code in beide VirtualHosts neer zet?
Gewijzigd op 02/04/2017 11:48:27 door Marthijn Buijs
 
- Ariën  -
Beheerder

- Ariën -

02/04/2017 11:56:09
Quote Anchor link
Ikzelf gebruik dit in de .htaccess, waar alles van beide protocollen dus samenkomt.
 
Marthijn Buijs

Marthijn Buijs

02/04/2017 17:56:25
Quote Anchor link
Mijn certificaat is gegenereerd met Lets Encrypt, op internet las dat als je www.domein.nl kiest dat je het dan ook alleen met www.domein.nl kan gebruiken. Verder heb ik nog steeds dat de HTTPS-versie niet goed werkt met zonder www.

Afbeelding

Edit:
Dit was in Google Chrome met de volgende flag:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
--force-fieldtrials=SSLCommonNameMismatchHandling/Disabled/


Hierdoor kan ik beter zien of mijn server configuratie wel goed staat.
Zonder deze vlag zal Google Chrome zelf gaan redirecten.

Hoe doet PHPHulp het eigenlijk? Deze heeft ook een certificaat van Lets Encrypt.
Gewijzigd op 02/04/2017 17:58:43 door Marthijn Buijs
 
- Ariën  -
Beheerder

- Ariën -

02/04/2017 18:05:49
Quote Anchor link
Ik vermoed dat als je de certificaten instelt via een hostingsysteem zoals DirectAdmin, Plesk of Cpanel, dat de certificaten goed geregeld zijn. Ik ga het in ieder geval eens navragen.

Ik heb even gekeken naar mijn testdomeinnaam waarop ik Let's Encrypt heb draaien (via DirectAdmin), en die gebruikt voor de www-domeinnaam gewoon het certificaat van de non-www domeinnaam.
Gewijzigd op 02/04/2017 18:25:14 door - Ariën -
 
Ben van Velzen

Ben van Velzen

02/04/2017 19:07:28
Quote Anchor link
Correct, lets encrypt doet het niet anders dan bij andere certificaten: je standaard certificaat wordt uitgegeven met een CN van je domein zonder www, met een extra entry voor met www. Het zou dus hoe dan ook geen problemen mogen opleveren op technisch vlak.
 
Marthijn Buijs

Marthijn Buijs

02/04/2017 19:59:10
Quote Anchor link
Afbeelding

Beide zijn met www.

Iemand enig idee?
Gewijzigd op 02/04/2017 19:59:46 door Marthijn Buijs
 
- Ariën  -
Beheerder

- Ariën -

02/04/2017 20:05:21
Quote Anchor link
Hier staan ze als volgt....
Afbeelding

Ik denk dat er gewoon vergeten is om de normale hostname als certificaat aan te maken. Hoe genereer jij je certificaten? Bij DirectAdmin moet ik zowel hostnaam.nl als www.hostnaam.nl opgeven, hoewel ze automatisch beiden aangevinkt zijn.

En voor wie het opvalt: me.uk zijn echt bestaande TLD's ;-)
Gewijzigd op 02/04/2017 20:12:27 door - Ariën -
 
Marthijn Buijs

Marthijn Buijs

02/04/2017 21:26:05
Quote Anchor link
Ik heb de certificaten aangemaakt m.b.v. certbot, deze heeft het automatisch gedaan. Ik hoefde alleen maar een non-HTTPS VirtualHost te selecteren en de rest ging vanzelf.
 
Marthijn Buijs

Marthijn Buijs

12/04/2017 21:51:20
Quote Anchor link
Bedankt voor de moeite mensen maar ik denk dat er even niets anders opzit dan het zo te laten..
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.