apache virtual hosts & ssl

Apache, Lighttpd, nginx, Cherokee
debianfan
Posts: 165
Joined: 2002-08-17 18:40

apache virtual hosts & ssl

Post by debianfan » 2016-05-29 19:28

Guten Tag allerseits,

ich habe eine Subdomain eingerichtet und es läuft -

Code: Select all

Server version: Apache/2.4.10 (Debian)
Server built:   Jan  3 2016 03:50:53
Mit dieser Konfiguration funktioniert der http://subdomain.domain.de problemlos:

Code: Select all

<VirtualHost *:80>
  ServerName subdomain.domain.de
  ServerAdmin sebastian@domain.de
 
  DocumentRoot /var/www/ft/htdocs
  SuexecUserGroup ft ft

  <Directory /var/www/ft/htdocs/>
    FCGIWrapper /var/www/ft/conf_ft .php
    <FilesMatch \.php$>
      SetHandler fcgid-script
    </FilesMatch>
    Options +ExecCGI
    Require all granted
  </Directory>
 
  ErrorLog /var/log/apache2/ft_error.log
  LogLevel warn
  CustomLog /var/log/apache2/ft_access.log combined
 
</VirtualHost>


Ich habe über Startssl ein Zertifikat besorgt und habe die ft.conf erweitert - die sieht jetzt so aus:

Code: Select all

<VirtualHost *:80>
  ServerName subdomain.domain.de
  ServerAdmin sebastian@domain.de
 
  DocumentRoot /var/www/ft/htdocs
  SuexecUserGroup ft ft


 
  <Directory /var/www/ft/htdocs/>
    FCGIWrapper /var/www/ft/conf_ft .php
    <FilesMatch \.php$>
      SetHandler fcgid-script
    </FilesMatch>
    Options +ExecCGI
    Require all granted
#    AllowOverride all
  </Directory>
 
  ErrorLog /var/log/apache2/ft_error.log
  LogLevel warn
  CustomLog /var/log/apache2/ft_access.log combined
 
</VirtualHost>

<VirtualHost *:443>
ServerName subdomain.domain.de
ServerAdmin sebastian@domain.de

  DocumentRoot /var/www/ft/htdocs
  SuexecUserGroup ft ft
 
 <Directory /var/www/ft/htdocs/>
    FCGIWrapper /var/www/ft/conf_ft .php
    <FilesMatch \.php$>
      SetHandler fcgid-script
    </FilesMatch>
    Options +ExecCGI
    AllowOverride all
    Require all granted
  </Directory>
 
  ErrorLog /var/log/apache2/ft_ssl_error.log
  LogLevel warn
  CustomLog /var/log/apache2/ft_ssl_access.log combined
   SSLEngine on
#   SSLProtocol all -SSLv2
#   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM

 SSLProtocol all -SSLv2 -SSLv3
 SSLCompression Off
 SSLHonorCipherOrder on 
 SSLCipherSuite 'ECDH+AESGCM EDH+AESGCM!aNULL !eNULL !EXPORT !LOW !MEDIUM !DES !3DES !RC4 !SEED !CAMELLIA !MD5 !PSK !DSS'

 # SSLCipherSuite 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'

 SSLCertificateFile      /etc/ssl/certs/ft.de.pem
 SSLCertificateKeyFile /etc/ssl/private/ft.de.key
 
#   SSLCertificateFile /etc/ssl/certs/ft.de.crt
#   SSLCertificateKeyFile /etc/ssl/private/ft.de.key
   SSLCertificateChainFile /etc/ssl/certs/sub.class1.server.ca.pem
  SSLCACertificateFile /etc/ssl/certs/ca.pem
  CustomLog /var/log/apache2/ssl_request_log \
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


 </VirtualHost>
Jetzt geht auf dieser Subdomain nix mehr - weder http://subdomain.domain.de noch https://subdomain.domain.de

Im Error-Log & im Access-Log steht nichts.

Sowohl bei http:// und bei https:// sagt Firefox: "Fehler: Verbindung fehlgeschlagen"

Ich bin nun etwas ratlos :-/

Witzigerweise habe ich diese Konfiguration von einem anderen Virtual-Host kopiert - da gehts problemlos.

gruß

Sebastian

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: apache virtual hosts & ssl

Post by Joe User » 2016-05-29 20:51

Du hast ' statt " in SSLCipherSuite verwendet (plus Fipptehler, fehlendes Leerzeichen) und SSLCertifikateChainFile ist weggefallen und in SSLCACertifikateFile aufgegangen. Hast Du SNI im ssl_module Block der Hauptkonfiguration aktiviert?

Hier mal mein (ungetesteter) Vorschlag basierend auf Deinem Versuch:

Code: Select all

<VirtualHost *:80>
  ServerName subdomain.domain.de
  ServerAdmin sebastian@domain.de
  DocumentRoot /var/www/ft/htdocs
  SuexecUserGroup ft ft
  <Directory /var/www/ft/htdocs/>
    FCGIWrapper /var/www/ft/conf_ft .php
    <FilesMatch \.php$>
      SetHandler fcgid-script
    </FilesMatch>
    Options +ExecCGI
    Require all granted
#    AllowOverride all
  </Directory>
  ErrorLog /var/log/apache2/ft_error.log
  LogLevel warn
  CustomLog /var/log/apache2/ft_access.log combined
</VirtualHost>

<VirtualHost *:443>
  ServerName subdomain.domain.de
  ServerAdmin sebastian@domain.de
  DocumentRoot /var/www/ft/htdocs
  SuexecUserGroup ft ft
  <Directory /var/www/ft/htdocs/>
    FCGIWrapper /var/www/ft/conf_ft .php
    <FilesMatch \.php$>
      SetHandler fcgid-script
    </FilesMatch>
    Options +ExecCGI
    AllowOverride all
    Require all granted
  </Directory>
  ErrorLog /var/log/apache2/ft_ssl_error.log
  LogLevel warn
  CustomLog /var/log/apache2/ft_ssl_access.log combined
  SSLEngine On
  SSLCompression Off
  SSLSessionTickets Off
  SSLHonorCipherOrder On
  SSLOptions +StrictRequire +StdEnvVars
  SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2
  SSLCipherSuite "EECDH+CHACHA20 EECDH+AESGCM EECDH+AES256+SHA384 EECDH+AES128+SHA256 EECDH+AES256+SHA EECDH+AES128+SHA EDH+CHACHA20 EDH+AESGCM EDH+AES256+SHA256 EDH+AES128+SHA256 EDH+AES256+SHA EDH+AES128+SHA !aDSS !kECDHe !kECDHr !kDHd !kDHr !SEED !IDEA !RC2 !RC4 !eNULL !aNULL !MEDIUM !LOW !EXPORT"
  SSLCertificateFile /etc/ssl/certs/ft.de.pem
  SSLCertificateKeyFile /etc/ssl/private/ft.de.key
  SSLCACertificateFile /etc/ssl/certs/sub.class1.server.ca.pem
  CustomLog /var/log/apache2/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
Wobei ich folgende Optionen direkt im ssl_module Block der Hauptkonfiguration global für alle SSL-VHosts setzen würde, spart Arbeit und vermindert Fehlerquellen:

Code: Select all

  SSLCompression Off
  SSLSessionTickets Off
  SSLHonorCipherOrder On
  SSLStrictSNIVHostCheck On
  SSLOptions +StrictRequire +StdEnvVars
  SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2
  SSLCipherSuite "EECDH+CHACHA20 EECDH+AESGCM EECDH+AES256+SHA384 EECDH+AES128+SHA256 EECDH+AES256+SHA EECDH+AES128+SHA EDH+CHACHA20 EDH+AESGCM EDH+AES256+SHA256 EDH+AES128+SHA256 EDH+AES256+SHA EDH+AES128+SHA !aDSS !kECDHe !kECDHr !kDHd !kDHr !SEED !IDEA !RC2 !RC4 !eNULL !aNULL !MEDIUM !LOW !EXPORT"
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

debianfan
Posts: 165
Joined: 2002-08-17 18:40

Re: apache virtual hosts & ssl

Post by debianfan » 2016-05-30 06:07

Danke - aber SSLSessionTickets gibts erst ab Version 2.5.

Er startet trotzdem nicht - komischerweise kackt der Apache jetzt komplett ab mit der Meldung:

Code: Select all

# systemctl status apache2.service -l
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: active (exited) since Mo 2016-05-30 06:05:38 CEST; 24s ago
  Process: 3656 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 3610 ExecReload=/etc/init.d/apache2 reload (code=exited, status=1/FAILURE)
  Process: 3691 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)

Mai 30 06:05:38 debian apache2[3691]: Starting web server: apache2AH02559: The SSLCertificateChainFile directive (/etc/apache2/sites-enabled/lkg.conf:58) is deprecated, SSLCertificateFile should be used instead
Mai 30 06:05:38 debian apache2[3691]: AH00557: apache2: apr_sockaddr_info_get() failed for debian
Mai 30 06:05:38 debian apache2[3691]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Mai 30 06:05:38 debian apache2[3691]: Action 'start' failed.
Mai 30 06:05:38 debian apache2[3691]: The Apache error log may have more information.
Mai 30 06:05:38 debian apache2[3691]: .

und im globalen error.log des apache steht:

Code: Select all

AH00016: Configuration Failed

debianfan
Posts: 165
Joined: 2002-08-17 18:40

Re: apache virtual hosts & ssl

Post by debianfan » 2016-05-30 06:09

Als ich jetzt den kompletten SSL-Teil auskommentiert habe, startet der Apache wieder - alle vhosts sind wieder auf ihren Domains zu erreichen

User avatar
rudelgurke
Posts: 405
Joined: 2008-03-12 05:36

Re: apache virtual hosts & ssl

Post by rudelgurke » 2016-05-30 11:13

Hi,

mach doch mal ein "apache2ctl -t" für einen ConfigTest und schau was er meldet, wenn SSL an ist.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: apache virtual hosts & ssl

Post by Joe User » 2016-05-30 11:55

Die Änderungen für SSLCertificateChainFile musst Du in allen Configs/VHosts vornehmen.
Es fehlt Dir auch ein globaler "ServerName" in der Hauptkonfiguration.

Für brauchbare Logs während des Debuggen bitte alle "LogLevel" auf debug setzen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.