# [ISPConfig3] SSL-Fehler, Domain mit/ohne www als ServerName/ServerAlias?



## mdn (4. Apr. 2012)

Hallo,

ich habe nach Einbinden eines extern generierten SLL-Zertifikats (Thawte) das Problem, dass der Webserver nicht per SSL erreichbar ist. "Fehlercode: ssl_error_rx_record_too_long"

Im error-Log des vhosts finde ich:

[Wed Apr 04 16:48:04 2012] [warn] RSA server certificate CommonName (CN) `www.example.com' does NOT match server name!?
[Wed Apr 04 16:48:04 2012] [error] Unable to configure RSA server private key
[Wed Apr 04 16:48:04 2012] [error] SSL Library Error: 185073780 error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch


Ich vermute dass es daran liegt, dass wir das Zertifikat auf www.example.com (bzw. natürlich den echten Domainnamen) registriert haben, während in ISPConfig der Webserver nur mit example.com (bzw. natürlich wieder dem echten Domainnamen) als ServerName angelegt wurde (www.example.com ist nur als ServerAlias konfiguriert).

Wenn das wirklich der Grund ist: Kann das in ISPConfig einfach verändert werden, also
ServerName www.example.com
ServerAlias example.com
und wenn ja wie?

Oder liege ich falsch und der Fehler hat eine ganz andere Ursache?

Das Zert bei Thawte neu auszustellen wird wohl nicht gehen. Außerdem soll der Webserver von den Nutzern unter www.example.com angesprochen werden, d.h. das Zert muss auch auf diesen Namen lauten.

ISPConfig-Version ist 3.0.4.3

Für Hinweise dankbar,
Martin


----------



## nowayback (4. Apr. 2012)

Moinsen,

1. Normalerweise wird ein Standartzertifikat ausgestellt für domänenname.endung was auch www.domänenname.endung enthält. D.h. es sollte beides funktionieren.

2. [Wed Apr 04 16:48:04 2012] [warn] RSA server certificate CommonName (CN) `IANA &mdash; Example domains' does NOT match server name!?
Diese Meldung kannst du im Normalfall ignorieren. Sie kommt warscheinlich daher das dein Server server1.domänenname.endung oder so heißt anstatt www.domänenname.endung. Das macht auch sinn so. In dem Fall ist das ok.


Zur Lösung:
Prüfe bitte ob du ssl aktiviert hast:

```
a2enmod ssl
```
Danach prüfe bitte ob du die default-ssl enabled hast:

```
a2enable default-ssl
```
Grüße
nwb


----------



## mdn (5. Apr. 2012)

Hallo,

erstmal danke für die Antwort!



Zitat von nowayback:


> 1. Normalerweise wird ein Standartzertifikat ausgestellt für domänenname.endung was auch www.domänenname.endung enthält. D.h. es sollte beides funktionieren.


Meinst du ein Wildcard-Zertifikat, also "*.domain.tld"? Haben wir in diesem  Fall leider nicht. Das Zertifikat ist explizit auf den Common Name mit www ausgestellt ("CN=www.domain.tld"). Ein Wildcard-Cert wäre deutlich teurer.



Zitat von nowayback:


> 2. [Wed Apr 04 16:48:04 2012] [warn] RSA server certificate CommonName (CN) `IANA &mdash; Example domains' does NOT match server name!?
> Diese Meldung kannst du im Normalfall ignorieren. Sie kommt warscheinlich daher das dein Server server1.domänenname.endung oder so heißt anstatt www.domänenname.endung. Das macht auch sinn so. In dem Fall ist das ok.


Der Linux-Server selbst hat ohnehin einen komplett anderen Hostname, das ist kein Thema. Ignorieren geht leider nicht, da der Aufruf mit https ja eben nicht funktioniert. Ok, vielleicht liege ich auch falsch und die Meldung selbst (ist ja nur eine Warnung) wäre harmlos. Trotzdem bekomme ich keine SSL-Verbindung zu diesem vhost.



Zitat von nowayback:


> Prüfe bitte ob du ssl aktiviert hast:
> 
> ```
> a2enmod ssl
> ```


Ja, "Module ssl already enabled".



Zitat von nowayback:


> Danach prüfe bitte ob du die default-ssl enabled hast:
> 
> ```
> a2enable default-ssl
> ```


Du meinst "a2ensite"? Nein, die "default-ssl" ist nicht aktiv. Warum auch, ich will ja SSL in einem eigenen vhost, der via ISPConfig angelegt wurde.
SSL hat mit genau diesem vhost und einem self-signed certificate auch schon funktioniert, nur eben nicht mit dem nachträglich eingebundenen offiziellen Thawte-Zertifikat.

Firefox meldet "Fehlercode: ssl_error_rx_record_too_long", in Chrome heisst es "Error 107 (net::ERR_SSL_PROTOCOL_ERROR): SSL protocol error."

wget sagt:

```
Connecting to IPADRESSE:443...connected.
OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
Unable to establish SSL connection.
```
Gruß
Martin


----------



## Till (5. Apr. 2012)

Und das thawte ssl Zertifikat basiert auf dem CSR den ISPConfig erzeugt hatte, oder basiert es auf einem anderen csr? Wenn es nicht der ispconfig CSR ist, kann apache das ssl cert nicht laden da ein key mismatch vorliegt, dann wurde der ssl teil automatisch aus dem vhost entfernt.

Die Vorgehensweise um ein offozielles SSL Zert einzufügen ist:

1) Self signed cert erstellen.
2) Das CSR das erzeugt wurde von einer authority wie thawte zertifizieren lassen.
3) Das Cert was Du zurück bekommen hast in das ssl cert Feld in ISPConfig kopieren und dabei das selbstsignierte cert in dem Feld ersetzen, dann als Aktion "save certificate" auswählen und auf den speichern knopf drücken.


----------



## mdn (5. Apr. 2012)

Zitat von Till:


> Und das thawte ssl Zertifikat basiert auf dem CSR den ISPConfig erzeugt hatte, oder basiert es auf einem anderen csr?
> Wenn es nicht der ispconfig CSR ist, kann apache das ssl cert nicht  laden da ein key mismatch vorliegt, dann wurde der ssl teil automatisch  aus dem vhost entfernt.


Nein, der CSR wurde leider schon außerhalb von ISPConfig erzeugt und damit das Zertifikat bei Thawte bestellt.

Allerdings habe ich mich dann beim Einbinden streng an die Anleitung im ISPConfig Manual (Abschnitt 5.4 bzw. 5.4.1) gehalten, d.h. zunächst ein self-signed Cert+Key generieren lassen, dann auf der Shell die Dateien ersetzt und in der Weboberfläche die CSR und CRT eingefügt (ebenso das Bundle, das bei Thawte zusätzlich benötigt wird).

Ich denke inzwischen habe ich die Ursache gefunden: Ich habe beim Generieren des Requests die Default-Einstellung für SSL-Domain auf "DOMAIN.TLD (ohne www!) gelassen. Das Manual geht an dieser Stelle auf diesen Punkt gar nicht ein.

Habe nun das Cert nochmal komplett rausgelöscht und den ganzen Vorgang mit SSL-Domain=www.DOMAIN.TLD erneut ausgeführt - damit funktioniert jetzt der SSL-Aufruf und liefert das Thawte-Zertifikat aus.

Danke fürs Mitlesen und Mitdenken!

Gruß
Martin


----------



## Till (6. Apr. 2012)

> Ich denke inzwischen habe ich die Ursache gefunden: Ich habe beim Generieren des Requests die Default-Einstellung für SSL-Domain auf "DOMAIN.TLD (ohne www!) gelassen. Das Manual geht an dieser Stelle auf diesen Punkt gar nicht ein.


Das Manual geht darauf nicht ein da es keine Rolle spielt. Wenn Du einen externen csr verwendest, dann sind alle Einstellungen für den Zertifikatsinhalt wie Domain, name etc. die Du in ISPConfig eingestellt hast nicht relevant, denn diese sind in Deinem Externen CSR drin. Der Fehler wird also irgendwo anders gelegen haben, vielleicht fehlte etwas beim reinkopieren von cert, key oder csr.


----------

