ubuntuusers.de

Problem beim einbinden von Multi Domain Certificate (SAN)

Status: Gelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

Doc_Kotoga

Anmeldungsdatum:
27. April 2016

Beiträge: 15

Hallo zusammen!

Ich hab mir bei Comodo ein Multi Domain Zertifikat bestellt, bekomm es aber irgendwie nicht richtig eingebunden. Das Problem ist, dass es auf Domain1 läuft ohne Probleme zu machen, auf Domain2 gibt er mir aber die Meldung, dass es angeblich das Falsche Zertifikat ist. Ich hab extra nochmal nachgesehen, ob die Domain tatsächlich, ohne Druckfehler, im Zertifikat drin steht und das tut sie (Der Fehlerteufel bei der Generierung ist also ausgeschlossen). Gibt es, ausser der domainX.de.conf im sites-available bzw. sites-enabled und der apache2.conf im Ordner von Apache, noch andere Orte an denen man das eintragen muss?

Die Fehlermeldung aus FireFox:

https://domain2.de/ 
Sichere Kommunikation mit der Gegenstelle ist nicht möglich: Angeforderter Domainname stimmt nicht mit dem Zertifikat des Servers überein. 
HTTP Strict Transport Security: false 
HTTP Public Key Pinning: false 

Eintrag aus der www.domain1.de.conf im sites-enabled Ordner:

<VirtualHost *:443>
        DocumentRoot /var/www/html/domain1
        ServerName www.domain1.de
        ServerAlias domain1.de
          <Directory /var/www/html/domain1>
              Options FollowSymLinks Includes ExecCGI
              AllowOverride All
              Order deny,allow
              Allow from all
          </Directory>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl.crt/certificate.crt
        SSLCertificateKeyFile /etc/apache2/ssl.key/key.key
        SSLCACertificateFile /etc/apache2/ssl.crt/cert.cabundle
</VirtualHost>

Und hier www.domain2.de.conf (die angeblich das falsche Zertifikat hat)

<VirtualHost *:443>
        DocumentRoot /var/www/html/vhosts/domain2
        ServerName www.domain2.de
        ServerAlias domain2.de
          <Directory /var/www/html/vhosts/domain2>
              Options FollowSymLinks Includes ExecCGI
              AllowOverride All
              Require all granted
          </Directory>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl.crt/certificate.crt
        SSLCertificateKeyFile /etc/apache2/ssl.key/key.key
        SSLCACertificateFile /etc/apache2/ssl.crt/cert.cabundle
</VirtualHost>

Danke schonmal für die Antworten :)

PS: Was wird bei Apache 2.4 eigendlich zum einbinden des "cabundle" benutzt? ''SSLCACertificateFile ''oder ''SSLCertificateChainFile''? Ich bin da etwas verwirrt ^^

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Doc_Kotoga schrieb:

PS: Was wird bei Apache 2.4 eigendlich zum einbinden des "cabundle" benutzt? SSLCACertificateFile oder SSLCertificateChainFile? Ich bin da etwas verwirrt ^^

SSLCerficiateChainFile wäre korrekt.

Zu deinem Problem: Was sagt denn der Firefox, welche Namen im Zertifikat stehen?

Doc_Kotoga

(Themenstarter)

Anmeldungsdatum:
27. April 2016

Beiträge: 15

Interessanterweise Zeigt er mir dort die nicht alle Namen an und angeblich ist das Zertifikat schon abgelaufen. Offensichtlich handelt es sich dabei um ein altes Zertifikat, es ist mir aber schleierhaft wo er das her hat, da das im Archiv liegt O_o

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Doc_Kotoga schrieb:

Interessanterweise Zeigt er mir dort die nicht alle Namen an und angeblich ist das Zertifikat schon abgelaufen. Offensichtlich handelt es sich dabei um ein altes Zertifikat, es ist mir aber schleierhaft wo er das her hat, da das im Archiv liegt O_o

Vermutlich hat der Firefox das Zertifikat noch gecached, eventuell weil du HTST (HTTP Strict Transport Security) verwendest. So wirst du es wieder los.

Doc_Kotoga

(Themenstarter)

Anmeldungsdatum:
27. April 2016

Beiträge: 15

Das hat mich leider auch nicht weiter gebracht. Hab mir die Seite auch noch im chrome (benutze ich selten) und im IE (benutze ich eigendlich nie) angesehen. Das Problem scheint tatsächlich an den Einstellungen zu liegen.

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Doc_Kotoga schrieb:

Das hat mich leider auch nicht weiter gebracht. Hab mir die Seite auch noch im chrome (benutze ich selten) und im IE (benutze ich eigendlich nie) angesehen. Das Problem scheint tatsächlich an den Einstellungen zu liegen.

Ok, dann wirf mal alle Annahmen weg und gehe Schritt für Schritt vor:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Ist das überhaupt das korrekte Zertifikat, also stehen dort die Namen korrekt drin?
openssl x509 -in /etc/apache2/ssl.crt/certificate.crt -noout -text | egrep "(Subject:|DNS)"

# Apache2 neustarten
apache2ctl stop && apache2ctl start

# Prüfen, ob der Apache das korrekte Zertifikat ausliefert
# … für Domain 1
openssl s_client -servername www.domain1.de -connect www.domain1.de:443 | openssl x509 -text | egrep "(Subject:|DNS)"
# … für Domain 2
openssl s_client -servername www.domain2.de -connect www.domain2.de:443 | openssl x509 -text | egrep "(Subject:|DNS)"

Doc_Kotoga

(Themenstarter)

Anmeldungsdatum:
27. April 2016

Beiträge: 15

misterunknown schrieb:

Doc_Kotoga schrieb:

Das hat mich leider auch nicht weiter gebracht. Hab mir die Seite auch noch im chrome (benutze ich selten) und im IE (benutze ich eigendlich nie) angesehen. Das Problem scheint tatsächlich an den Einstellungen zu liegen.

Ok, dann wirf mal alle Annahmen weg und gehe Schritt für Schritt vor:

1
2
# Ist das überhaupt das korrekte Zertifikat, also stehen dort die Namen korrekt drin?
openssl x509 -in /etc/apache2/ssl.crt/certificate.crt -noout -text | egrep "(Subject:|DNS)"

Ja, hier sind alle Domains eingetragen, die eingetragen sein sollten

1
2
# Apache2 neustarten
apache2ctl stop && apache2ctl start

Startet Problemlos

1
2
3
4
5
# Prüfen, ob der Apache das korrekte Zertifikat ausliefert
# … für Domain 1
openssl s_client -servername www.domain1.de -connect www.domain1.de:443 | openssl x509 -text | egrep "(Subject:|DNS)"
# … für Domain 2
openssl s_client -servername www.domain2.de -connect www.domain2.de:443 | openssl x509 -text | egrep "(Subject:|DNS)"

An dieser Stelle wird es interessant, hier bekomme ich bei Domain1:

1
2
3
140381421835936:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:795:
unable to load certificate
140422604924576:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE

und für Domain4, die laut dem ersten test auch in dem Zertifikat stehen sollte:

1
2
3
4
5
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify error:num=20:unable to get local issuer certificate
verify return:0
        Subject: OU=Domain Control Validated, OU=PositiveSSL Multi-Domain, CN=www.domain1.de
                DNS:www.domain1.de, DNS:www.sub.domain1.de, DNS:www.domain2.de, DNS:www.domain3.de

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Doc_Kotoga schrieb:

An dieser Stelle wird es interessant, hier bekomme ich bei Domain1:

1
2
3
140381421835936:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:795:
unable to load certificate
140422604924576:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE

Ok, das ist komisch. Hast du SSLStrictSNIVHostCheck auf On gestellt? Bitte poste auch mal die Konfiguration von Domain1. Außerdem noch, welcher VHost als erstes greift (ls -l /etc/apache2/sites-enabled)

und für Domain4, die laut dem ersten test auch in dem Zertifikat stehen sollte:

1
2
3
4
5
depth=2 C = GB, ST = Greater Manchester, L = Salford, O = COMODO CA Limited, CN = COMODO RSA Certification Authority
verify error:num=20:unable to get local issuer certificate
verify return:0
        Subject: OU=Domain Control Validated, OU=PositiveSSL Multi-Domain, CN=www.domain1.de
                DNS:www.domain1.de, DNS:www.sub.domain1.de, DNS:www.domain2.de, DNS:www.domain3.de

Das sieht gut aus.

Doc_Kotoga

(Themenstarter)

Anmeldungsdatum:
27. April 2016

Beiträge: 15

Sorry, dass ich etwas "träge" bin, aber ich hab hier gerade ein paar Baustellen die ich paralell bearbeiten muss. :/

Die Config von Domain1 steht im ersten Post. Der SSLStrictSNIVHostCheck hab ich nicht gesetzt; muss in der Config der jeweiligen Seite eingetragen werden oder in der Apache2.conf?

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Doc_Kotoga schrieb:

Der SSLStrictSNIVHostCheck hab ich nicht gesetzt; muss in der Config der jeweiligen Seite eingetragen werden oder in der Apache2.conf?

Das gehört IMHO nach /etc/apache2/mods-available/ssl.conf.

Doc_Kotoga

(Themenstarter)

Anmeldungsdatum:
27. April 2016

Beiträge: 15

Ob die Funktion aktiv ist oder nicht bringt keinen Unterschied. Mittlerweile bin ich aber soweit, das keine Seite aus dem Ceritficat mehr mit HTTPS läuft und ich im Browser immer die Meldung

SSL_ERROR_RX_RECORD_TOO_LONG

bekomme. ☹

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Doc_Kotoga schrieb:

Ob die Funktion aktiv ist oder nicht bringt keinen Unterschied. Mittlerweile bin ich aber soweit, das keine Seite aus dem Ceritficat mehr mit HTTPS läuft und ich im Browser immer die Meldung

SSL_ERROR_RX_RECORD_TOO_LONG

bekomme. ☹

Dann hast du noch Konfigurationsfehler. Daher solltest du auch nochmal die Konfiguration des VHosts von Domain1 zeigen. Die Konfiguration, wie sie im ersten Post steht ist falsch (SSLCACertificateFile).

Doc_Kotoga

(Themenstarter)

Anmeldungsdatum:
27. April 2016

Beiträge: 15

Die aktuelle domain1.de.conf sieht wie folgt aus:

<VirtualHost *:443>
        DocumentRoot /var/www/html/sbkmon
        ServerName www.domain1.de
        ServerAlias domain1.de
          <Directory /var/www/html/sbkmon>
              Options FollowSymLinks Includes ExecCGI
              AllowOverride All
              Order deny,allow
              Allow from all
          </Directory>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl.crt/certificate.crt
        SSLCertificateKeyFile /etc/apache2/ssl.key/key.key
        SSLCertificateChainFile /etc/apache2/ssl.crt/cert.cabundle
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/sbkmon
ServerName www.domain1.de
ServerAlias domain1.de
<Directory /var/www/html/sbkmon>
    AllowOverride All
    Order deny,allow
    Allow from all
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain1.de [nc]
rewriterule ^(.*)$ http://www.domain1.de/$1 [r=301,nc]
</Directory>
</VirtualHost>

Interessanterweise läuft die Seite damit. Die anderen Seiten die im Zertifikat stehen, aber aus unerfindlichen Gründen, nicht

misterunknown Team-Icon

Ehemalige
Avatar von misterunknown

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 4403

Wohnort: Sachsen

Doc_Kotoga schrieb:

Interessanterweise läuft die Seite damit.

Ich dachte es geht aktuell nicht!? 🙄

Die anderen Seiten die im Zertifikat stehen, aber aus unerfindlichen Gründen, nicht

Also erst gehts, dann wieder nicht, dann gehts wieder – auf dieser Basis ist es schwierig zu helfen. Du kennst aber alle relevanten Einstellungen (SSL-Direktiven, SSLStrictSNIVHostCheck). Du weißt auch, wie du testen kannst, was als Zertifikat kommt (openssl s_client...).

An deiner Stelle würde ich alle Konfigurationen wegschmeißen und die VHosts nochmal per Hand und Schritt-für-Schritt konfigurieren.

Doc_Kotoga

(Themenstarter)

Anmeldungsdatum:
27. April 2016

Beiträge: 15

Nach einigem Hin und Her hab ich den Fehler gefunden. Die letzte Domain, die ich nicht eingerichtet bekommen hab wird über wordpress.domain.de angesprochen, was ich total vergessen hab, da in der Adresszeile die "normale" Adresse steht. Umleitungen aller Art hab ich nicht mit dem Zertifikat zum laufen bekommen, also habe ich kurzerhand das Zertifikat mit der wordpress-Adresse neu austellen lassen und nun läuft es. Danke an alle, die geholfen haben und Geduld mir mit hatten ☺

Ich werd das dann hier schließen.

Antworten |