• Dieses Thema ist leer.
Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Autor
    Beiträge
  • #16507
    Anonym
    Inaktiv

    Hallo,

    ich habe hier einen merkwürdigen Zertifikatsfehler beim Versuch, eine Emailbenachrichtigung über meinen Server zu verschicken, den ich nicht richtig „greifen“ kann.

    Ich habe von der israelischen CA StartSSL signierte Zertifikate. Diese kommen mit einem Satz „Intermediate certificates“ in diesem Fall mit dem schönen Namen „Class 2“. Diese werden von Postfix mit ausgeliefert

    Für „Perfect Forward Secrecy“ habe ich außerdem per TLS sowohl 512, als auch 2048 bit Diffie-Hellman Schlüssel im Angebot.

    Ich muß hoffentlich nicht hinzufügen (tue es aber dennoch), daß ich keine Schwierigkeiten mit Microsoft(r) Outlook(tm), Ritlabs The Bat!, Mozilla Thunderbird und sendmail beim Mailversand über den SSL Port 465, oder ohne SSL auf Port 25 habe.

    Außerdem bescheinigt mir die bekannte SSL-Tools Website:
    http://de.ssl-tools.net/mailservers/hostingundservice.de
    daß mit meiner SSL-Konfiguration alles Bestens ist.

    Nun endlich zum Problem (die Hälfte der Leser ist bereits eingeschlafen und stört mich mit lauten Schnarchgeräuschen):
    Weder mit, noch ohne SSL kann sich die Emailbenachrichtigung mit meinem Mailserver verbinden.

    [ SEVERE - 13/Mrz/2014:16:08:20 +0100 - Timer-14 - de.janrufmonitor.service.notification.MailNotification$MailTask.run() - javax.mail.MessagingException: Exception reading response;
    nested exception is:
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ]
    javax.mail.MessagingException: Exception reading response;
    nested exception is:
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1611)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
    at javax.mail.Service.connect(Service.java:288)
    at de.janrufmonitor.service.notification.MailNotification$MailTask.run(MailNotification.java:242)
    at java.util.TimerThread.mainLoop(Unknown Source)
    at java.util.TimerThread.run(Unknown Source)
    Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
    at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
    at sun.security.ssl.Handshaker.processLoop(Unknown Source)
    at sun.security.ssl.Handshaker.process_record(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
    at sun.security.ssl.AppInputStream.read(Unknown Source)
    at com.sun.mail.util.TraceInputStream.read(TraceInputStream.java:110)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at com.sun.mail.util.LineInputStream.readLine(LineInputStream.java:88)
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1589)
    ... 6 more
    Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
    at sun.security.validator.Validator.validate(Unknown Source)
    at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
    ... 19 more
    Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
    at java.security.cert.CertPathBuilder.build(Unknown Source)
    ... 25 more

    „unable to find valid certification path to requested target“ hört sich in meinen Ohren so an, als ob die Intermediate certificates nicht berücksichtigt werden. Kann ich diese (als .pam-Datei vorhandenen Zwischenzertifikate) evtl. irgendwie bei jAnrufmonitor, bzw. Java anmelden?

    Irgendwelche Ideen?

    Ganz, ganz heissen Dank im Voraus!

    #27003
    Thilo Brandt
    Keymaster

    Hallo m.s.,

    also im jAnrufmonitor kannst du keine Zertifikate hinterlegen, wenn, dann nur bei deiner Java VM. Ich denke, dass dein Problem besser in einer Java Community adressiert wäre. Ich bin leider kein SSL Spezialist und nutze im jAnrufmonitor nur die Standard-Java Methode für die SSLv3/TLSv1 Verschlüsselung. Wie man aber für Java unbekannt Zertifikate installiert, kann ich dir leider auch nicht sagen.

    Viele Grüße
    Thilo

    #27004
    Anonym
    Inaktiv

    Ich habe etwas gegoogled und bin auf folgende Zeile gestoßen:

    System.setProperty("javax.net.ssl.trustStore",path_to_your_cacerts_file);

    Ich habe nur keine Ahnung, wo ich diese Einstellung eintippen soll und ob mein „Intermediate certificate“ im richtigen Format ist. Das Ding sieht nämlich so aus [sub.class2.server.ca.pem]:

    
    
    BEGIN CERTIFICATE
    MIIGNDCCBBygAwIBAgIBGjANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
    MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
    Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
    dGlvbiBBdXRob3JpdHkwHhcNMDcxMDI0MjA1NzA5WhcNMTcxMDI0MjA1NzA5WjCB
    jDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsT
    IlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0
    YXJ0Q29tIENsYXNzIDIgUHJpbWFyeSBJbnRlcm1lZGlhdGUgU2VydmVyIENBMIIB
    IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4k85L6GMmoWtCA4IPlfyiAEh
    G5SpbOK426oZGEY6UqH1D/RujOqWjJaHeRNAUS8i8gyLhw9l33F0NENVsTUJm9m8
    H/rrQtCXQHK3Q5Y9upadXVACHJuRjZzArNe7LxfXyz6CnXPrB0KSss1ks3RVG7RL
    hiEs93iHMuAW5Nq9TJXqpAp+tgoNLorPVavD5d1Bik7mb2VsskDPF125w2oLJxGE
    d2H2wnztwI14FBiZgZl1Y7foU9O6YekO+qIw80aiuckfbIBaQKwn7UhHM7BUxkYa
    8zVhwQIpkFR+ZE3EMFICgtffziFuGJHXuKuMJxe18KMBL47SLoc6PbQpZ4rEAwID
    AQABo4IBrTCCAakwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
    VR0OBBYEFBHbI0X9VMxqcW+EigPXvvcBLyaGMB8GA1UdIwQYMBaAFE4L7xqkQFul
    F2mHMMo0aEPQQa7yMGYGCCsGAQUFBwEBBFowWDAnBggrBgEFBQcwAYYbaHR0cDov
    L29jc3Auc3RhcnRzc2wuY29tL2NhMC0GCCsGAQUFBzAChiFodHRwOi8vd3d3LnN0
    YXJ0c3NsLmNvbS9zZnNjYS5jcnQwWwYDVR0fBFQwUjAnoCWgI4YhaHR0cDovL3d3
    dy5zdGFydHNzbC5jb20vc2ZzY2EuY3JsMCegJaAjhiFodHRwOi8vY3JsLnN0YXJ0
    c3NsLmNvbS9zZnNjYS5jcmwwgYAGA1UdIAR5MHcwdQYLKwYBBAGBtTcBAgEwZjAu
    BggrBgEFBQcCARYiaHR0cDovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5LnBkZjA0
    BggrBgEFBQcCARYoaHR0cDovL3d3dy5zdGFydHNzbC5jb20vaW50ZXJtZWRpYXRl
    LnBkZjANBgkqhkiG9w0BAQUFAAOCAgEAnQfh7pB2MWcWRXCMy4SLS1doRKWJwfJ+
    yyiL9edwd9W29AshYKWhdHMkIoDW2LqNomJdCTVCKfs5Y0ULpLA4Gmj0lRPM4EOU
    7Os5GuxXKdmZbfWEzY5zrsncavqenRZkkwjHHMKJVJ53gJD2uSl26xNnSFn4Ljox
    uMnTiOVfTtIZPUOO15L/zzi24VuKUx3OrLR2L9j3QGPV7mnzRX2gYsFhw3XtsntN
    rCEnME5ZRmqTF8rIOS0Bc2Vb6UGbERecyMhK76F2YC2uk/8M1TMTn08Tzt2G8fz4
    NVQVqFvnhX76Nwn/i7gxSZ4Nbt600hItuO3Iw/G2QqBMl3nf/sOjn6H0bSyEd6Si
    BeEX/zHdmvO4esNSwhERt1Axin/M51qJzPeGmmGSTy+UtpjHeOBiS0N9PN7WmrQQ
    oUCcSyrcuNDUnv3xhHgbDlePaVRCaHvqoO91DweijHOZq1X1BwnSrzgDapADDC+P
    4uhDwjHpb62H5Y29TiyJS1HmnExUdsASgVOb7KD8LJzaGJVuHjgmQid4YAjff20y
    6NjAbx/rJnWfk/x7G/41kNxTowemP4NVCitOYoIlzmYwXSzg+RkbdbmdmFamgyd6
    0Y+NWZP8P3PXLrQsldiL98l+x/ydrHIEH9LMF/TtNGCbnkqXBP7dcg5XVFEGcE3v
    qhykguAzx/Q=
    END CERTIFICATE
    #27005
    Thilo Brandt
    Keymaster

    Hallo m.s.,

    die System-Properties kann man in der JAVA Umgebung beim Start setzen -D=. Der jAnrufmonitor startet über jam.exe und der dazugehörigen loader.ini (32-bit) bzw. jam.ini (64-bit). Dort kannst du das System-Property dann auch hinterlegen.

    Viele Grüße
    Thilo

    #27006
    Anonym
    Inaktiv

    Es ist mir leider nicht gelungen, diesen Parameter zu setzen. Auch habe ich probiert, eine Umgebungsvariable zu setzen, das Certfile im Hauptverzeichnis zu speichern und mit „C:\cacert.pem“ anzusprechen,

    Aber ich fand noch einen Workaround: Man kann das Root-Zertifikat der StartSSL dem Zertifikatsspeicher von Java selber hinzufügen. Warum Oracle das Root-Zertifikat entfernt hat, entzieht sich zwar meiner Kenntnis, aber da es im Betriebssystem Windows, als auch in meinem Firefox standardmäßig installiert ist, schadet es in der Java-Konfiguration nun auch nicht mehr.

    Alles spielt sich in folgendem Verzeichnis ab. Um dort reinzuschreiben, muß man ein Tool mit administrativen Rechten verwenden:
    C:Program Files (x86)Javajre7libsecurity

    Man spielt die Datei „ca.pem“ der StartSSL in dieses Verzeichnis und erstellt zusätzlich eine Datei „addcert.cmd“ mit folgendem Inhalt:

    SET PATH=%PATH%;c:Program Files (x86)Javajre7bin
    keytool.exe -import -noprompt -trustcacerts -alias startsslca -file ca.pem -keystore cacerts -storepass changeit

    Diese Datei führt ihr mit administrativen Rechten aus. Sie fügt dann die Root-CA „StartSSL“ systemweit für alle Java-Programme hinzu. Danach könnt ihr ca.pem und addcert.cmd löschen. Mir ist aber nicht bekannt, ob Java das certfile bei einem Update überschreibt. Ich lasse sie also mal stehen.

    Möge diese Information noch irgendjemandem in der Post-Snowden-Zeit behilflich sein.

Ansicht von 5 Beiträgen - 1 bis 5 (von insgesamt 5)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.