hMailServer und SSL/TLS

Drakonomikon

Commander
Registriert
Okt. 2005
Beiträge
2.792
Ich habe ein Problem mit dem hMailServer. Und zwar habe ich vor einen Mailserver auf meinem Server einzurichten auf den ich per IMAP/SMTP zugreife. Prinzipiell funktioniert das auch, allerdings nur unverschlüsselt.

Sobald ich SSL/TLS mit denselben Ports wähle (in meinem Fall 993 und 587), kann ich auf meinem Client keine Verbindung mehr aufbauen. Ich vermute dass ich ein Problem mit meinem Zertifikat habe.

Für das Zertifikat habe ich im IIS eine Anforderung gestartet, die ich von meiner Zertifizierungstelle akzeptiert und anschließend im IIS wieder abgeschlossen habe. Dieses Zertifikat habe ich in einer Datei exportiert und im hMailServer hinterlegt. Allerdings kann oder soll man auch noch den privaten Schlüssel als Datei hinterlegen. Ich weiß aber nicht in welcher Dateiform hMailServer dies verlangt, geschweige denn wie ich den privaten Schlüssel exportieren kann.

Außerdem befürchte ich, dass das Zertifikat nicht auf den richtigen Namen ausgestellt wurde. Während meine öffentlich erreichbare Domain z.B. servername.de heißt, ist der Mailserver als servername.local eingetragen. Ich habe das Zertifikat auf servername.de ausgestellt.

Was nun?
 
Ich vermute dass ich ein Problem mit meinem Zertifikat habe.

Für das Zertifikat habe ich im IIS eine Anforderung gestartet, die ich von meiner Zertifizierungstelle akzeptiert und anschließend im IIS wieder abgeschlossen habe. Dieses Zertifikat habe ich in einer Datei exportiert und im hMailServer hinterlegt.

Sind der Server und Client in einer Domäne so dass der Client auch dem Server Zertifikat vertrauen kann ?

Außerdem befürchte ich, dass das Zertifikat nicht auf den richtigen Namen ausgestellt wurde. Während meine öffentlich erreichbare Domain z.B. servername.de heißt, ist der Mailserver als servername.local eingetragen. Ich habe das Zertifikat auf servername.de ausgestellt.

Von wo greift der Client denn zu ?
Du kannst auch mehrere Namen auf einem Zertifikat eintragen. ;)
 
Ich werde die anderen Ports mal ausprobieren, kann mir aber nicht vorstellen, dass es daran liegt. Schalte ich SSL/TLS ab, funktioniert es schließlich über die gleichen Ports.

Nein, mein Server ist in keiner Domäne, der Client auch nicht. Der Client und Server stehen an unterschiedlichen Orten mit unterschiedlichen IPs und haben prinzipiell nichts gemeinsam.

Wie kann ich mehrere Namen eintragen? In Windows Server 2012 R2 ist nur ein Feld für ein Name. Gibt es bei der Anforderung ein Trennzeichen für mehrere Namen?
 
Drakonomikon schrieb:
Dieses Zertifikat habe ich in einer Datei exportiert und im hMailServer hinterlegt. Allerdings kann oder soll man auch noch den privaten Schlüssel als Datei hinterlegen. Ich weiß aber nicht in welcher Dateiform hMailServer dies verlangt, geschweige denn wie ich den privaten Schlüssel exportieren kann.
Als was hast du ihn? *.crt enthält das Zertifikat, *.pfx ist Public + Private Key, *.pem kann alles sein (Zertifikat, CSR und Private Key - den Typ siehst du, wenn du die Datei in Notepad öffnest). hMailServer will wie üblich die Daten PEM-encoded haben. Ergo *.crt und *.key (wird generell für den Private Key verwendet). Beim Zertifikat ggf. noch das Full Chained Zertifikat verwenden, falls du Zwischenzertifikate benötigst.
Drakonomikon schrieb:
Außerdem befürchte ich, dass das Zertifikat nicht auf den richtigen Namen ausgestellt wurde. Während meine öffentlich erreichbare Domain z.B. servername.de heißt, ist der Mailserver als servername.local eingetragen. Ich habe das Zertifikat auf servername.de ausgestellt.
Kein Problem, das könntest du ja mit DNS bzw. der Hosts-Datei umbiegen. Auf irgendwelche dubiosen Domains (*.local oder sontwas) bekommst du aber eh kein Zertifikat ausgestellt. Das macht man i.d.R. self signed.
 
Ich habe sowohl eine .cer als auch eine .pfx-Datei erstellt. Mal schauen was außer dem noch möglich ist. Ich werde das morgen ausprobieren.

Ich habe die Zertifikate mit meiner eigenen CA erstellt. Von daher kein Problem. Ich weiß nur nicht was der Client sehen will. Schätze servername.de statt servername.local, weil letzteres eigentlich nur der Loginname ist.
 
Nein, mein Server ist in keiner Domäne, der Client auch nicht. Der Client und Server stehen an unterschiedlichen Orten mit unterschiedlichen IPs und haben prinzipiell nichts gemeinsam.

Naja, hast das CA beim Client importiert ?
Ist es ein Zertifikat das auf einer öffentlichen CA aufsitzt zb. VeriSign bzw. wie ist der Zertifizierungspfad.
So lange der Client dem Zertifikat nicht vertraut wird er den Verbindungsaufbau ablehnen.

Wie kann ich mehrere Namen eintragen? In Windows Server 2012 R2 ist nur ein Feld für ein Name. Gibt es bei der Anforderung ein Trennzeichen für mehrere Namen?

Habe gerade keine MS-CA zur Hand aber da sollte es ein Feld mit Alias geben so wie hier beim CB Zertifikat:

2017-04-11 07 55 14.png
 
Ja, ich vertraue natürlich dem CA und dem Zertifikat mit dem Client. Das habe ich auch überprüft, da ich für eine VPN Verschlüsselung ebenfalls das Zertifikat verwende.
 
Wäre schön mal die "Vertrauenswürdigen Stammzertifizierungsstellen" des Computer-Kontos des Client zu sehen. :)
Auch der Zertifizierungspfad.

Für das Zertifikat habe ich im IIS eine Anforderung gestartet

Für welche Zwecke ist das Zertifikat ausgestellt?
Auch für eMail ?
 
Ich bin schon ein paar Schritte weiter gekommen.

Zum einen habe ich den Port 25 auf meinen Server weitergeleitet und SMTP für Port 25 für alle IPs ohne Verschlüsslung hinzugefügt. D.h. ich habe nun SMTP 587 mit TLS/SSL und SMTP 25 sowie natürlich IMAP 993 SSL/TLS.

Ich habe mit OpenSSL gemäß Anweisungen ein selbstsigniertes Zertifikat erstellt und die .crt und .key-Datei im hMailServer als Zertifikats- und Private-Key-Datei eingetragen. Das Zertifikat vertraue ich im Client unter Vertrauenswürdigen Stammzertifizierungsstellen.

Da ich über mein Konto meines hMailServer mein externen Google-Konto eingebunden habe, konnte ich verifizieren, dass der Abruf des Postfachs meines Mailservers über IMAP mit Port 993 und SSL/TLS funktioniert. D.h., die empfangenden Mails meines Google-Kontos werden von meinem Mailserver auf das Mailserverkonto übertragen und sind dadurch per IMAP abrufbar.

Das Senden funktioniert scheinbar sporadisch. Evt. sogar immer, allerdings mit einer extremen Verzögerung.

Allerdings funktioniert das Empfangen von Mails nicht. Ich bekomme die Mail zurück mit dem Hinweis "530 SMTP authentication is required. (in reply to RCPT TO command)". Das macht für mich wenig Sinn, da zum einen der Client Authentification nutzt, und zum anderen ich nicht verstehe, wieso das die Antwort des hMailServers ist, wenn er Mails empfangen soll. Wozu ist eine Authentification für den Empfang notwendig? Das macht doch nur für das Senden sinn?

Es gibt noch ein Problem. Outlook definiert für Port 993 SSL statt TLS. Wenn ich TLS mit 993 und 587 einstelle, funktioniert gar nichts mehr. Thunderbird kennt diese Unterscheidung nicht.
 
Drakonomikon schrieb:
Es gibt noch ein Problem. Outlook definiert für Port 993 SSL statt TLS. Wenn ich TLS mit 993 und 587 einstelle, funktioniert gar nichts mehr. Thunderbird kennt diese Unterscheidung nicht.

TLS heißt in dem Fall StartTLS und dafür nutzt man normalerweise den Standard-Port (also 143)

Für SMTP stellt man meistens folgendes ein:
25 - StartTLS optional
465 - SSL
587 - StartTLS required (darauf verbindet man dann für gewöhnlich am Client)

Bei IMAP dann meistens:
143 - StartTLS required (geht auch optional, aber im Gegensatz zu SMTP kann man hier etwas Kontrolle ausüben und die Geräte zwingen verschlüsselt zu empfangen)
993 - SSL

Entsprechend musst du das dann bei Outlook einstellen

Zum verspäteten Versand:
Du versendest über deinen Server? Direkt dann oder über einen Relay von irgendeinem Provider? Es kann nämlich sein, dass deine Mails durch Greylisting vom Empfänger erst einmal abgelehnt werden. Dein Server sendet dann aber automatisch nach einen bestimmten Intervall (ich glaube so idR 10-15 Minuten) die Email erneut und dann nimmt sie der Empfänger auch an. Das passiert allerdings nur, wenn der Sender dem Empfänger unbekannt ist, wenn du also eine zweite Mail an die gleiche Domain sendest, sollte sie sofort durchgehen
 
Zuletzt bearbeitet:
Mittlerweile konnte ich auch das Problem mit dem Fehler "530 SMTP authentication is required. (in reply to RCPT TO command)" lösen. Es lag daran, dass unter den IP-Bereichseinstellungen "Externe zu Externe" Verbindungen eine SMTP-Authentifizierung erforderte. Das finde ich zwar etwas seltsam, da es eigentlich "Extern zu Intern" hätte betreffen sollen, aber egal.

Der Mailserver funktioniert nun wie er soll, wenngleich ich mich für eine andere Variante für mein Vorhaben entschieden habe. Danke für die Hilfe.
 
Zurück
Oben