Virtual host apache, SSL och non-www till www?

Trädvy Permalänk
Medlem
Registrerad
Dec 2003

Virtual host apache, SSL och non-www till www?

Hej!

Har kört fast lite med en hostfil på en site jag håller på med och jag tänkte om någon snabbt kunde se vad som blivit fel, säkert en superenkel grej men jag är lite lost..

Har bytt leverantör av SSL certifikat och det verkar skilja lite mellan dom.

Får upp ett felmeddelande som säger följande när jag testar med nya certet:
"The domain name does not match the certificate common name or san"

Här är lite detaljer om certen.
Gamla:
Common name
*.example.com
SANs
*.example.com, example.com

Nya:
Common name
*.example.com
SANs
*.example.com

Jag som inte är supervass på detta tolkar det som att det nya certet inte fungerar att köra på den "nakna" domänen utan endast med subdomän eller www?

Då kommer vi till del två i frågan, hur fasen ändrar jag min hostfil för att fungera för detta?

Idag ser min virtual host ut såhär:

<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect Permanent / https://example.com </VirtualHost> <VirtualHost *:443> ServerName example.com ServerAdmin info@hej.se DocumentRoot /var/www/html/example ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /home/user/ssl/example/example.com.crt SSLCertificateKeyFile /home/user/ssl/example/example.com.key SSLCACertificateFile /home/user/ssl/example/intermediate.crt </VirtualHost> <VirtualHost *:443> ServerName www.example.com DocumentRoot /var/www/html/example ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /home/user/ssl/example/example.com.crt SSLCertificateKeyFile /home/user/ssl/example/example.com.key SSLCACertificateFile /home/user/ssl/example/intermediate.crt Redirect permanent / https://example.com </VirtualHost>

Det ser ju ut som att det strular på grund av att jag har en tvingad redirect till non-www och då blir det en mismatch mot hur certifikatet är utställt, stämmer det?

Kan man köra något sånt här istället? Jag vill alltså åstadkomma att man ska alltid komma till www eftersom att den är säkrad, även om man skriver bara "example.com" eller "https://example.com".

<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect Permanent / https://www.example.com/ </VirtualHost> <VirtualHost *:443> ServerName example.com ServerAlias www.example.com Redirect Permanent / https://www.example.com/ </VirtualHost> <VirtualHost *:443> ServerName example.com ServerAlias www.example.com ServerAdmin info@hej.se DocumentRoot /var/www/html/example ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /home/ssl/folder/example.com.crt SSLCertificateKeyFile /home/ssl/example/example.com.key SSLCACertificateFile /home/ssl/example/intermediate.crt Redirect permanent / https://www.example.com </VirtualHost>

Trädvy Permalänk
Medlem
Plats
/var/www
Registrerad
Maj 2008

Kan du köra och skicka output: openssl x509 -text -noout -in example.com.crt

Du behöver inte skriva en ny vhost för varje alias.

Jag skulle skapa två vhost. en för port 80 och en för 443.

Ungefär såhär nedan. Då hamnar man på ssl sidan oavsett om man skriver www eller utan. Heller behöver du inte skriva Redirect permanent för port 443.

<VirtualHost *:80> ServerName example.com ServerAlias www.example.com Redirect Permanent / https://example.com </VirtualHost> <VirtualHost *:443> ServerName www.example.com ServerAlias example.com DocumentRoot /var/www/html/example ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /home/user/ssl/example/example.com.crt SSLCertificateKeyFile /home/user/ssl/example/example.com.key SSLCACertificateFile /home/user/ssl/example/intermediate.crt </VirtualHost>

got root?

Trädvy Permalänk
Medlem
Registrerad
Dec 2003

@edroon: Tack för tipset. Då har jag lärt mig något nytt där, själva hostfilen blir ju bra mycket renare på det där viset

Problemet har faktiskt löst sig nu, jag fixade faktiskt ett uppdaterat certifikat där både *.domän.com och domän.com var inkluderat i SANs och nu fungerar det precis som det gjorde med föregående certifikat. Kanske hade gått att ändra så att jag styrde om allt till www och komma runt problemet men det här var nog lättaste lösningen.