SSLHandshakeException PKIX-Pfaderstellung in Adobe Experience Manager as a Cloud Service fehlgeschlagen

In Adobe Experience Manager as a Cloud Service kann ein Java-basierter Anwendungs-Server keine Verbindung zu einem AEMaaCS-Endpunkt herstellen und zeigt einen SSL-Handshake-Fehler mit der Meldung PKIX-Pfad-Erstellung fehlgeschlagen an. Dies tritt auf, wenn Java keine vertrauenswürdige Zertifikatskette für den Endpunkt herstellen kann. Um dieses Problem zu beheben, überprüfen Sie die Java-TrustStore-Konfiguration und stellen Sie sicher, dass die erforderlichen DigiCert-Zertifikate vorhanden und vertrauenswürdig sind.

Beschreibung description

Umgebung

  • Adobe Experience Manager as a Cloud Service (alle Versionen)
  • Java-basierter interner Anwendungsserver

Problem/Symptome

  • Die Java-Anwendung kann keine Verbindung zu einem AEMaaCS-Endpunkt herstellen. PKIX-Pfad: Fehler beim Erstellen von SSLHandshakeException.
  • Die OpenSSL-Validierung vom selben Server ist erfolgreich.

Ursache

Die von der Anwendung verwendete Java-Laufzeitumgebung vertraut nicht den DigiCert-Stamm- oder Zwischenzertifikaten, die für den AEMaaCS-Endpunkt erforderlich sind, was zu einem Fehler bei der Validierung der Zertifikatkette führt.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben.

  1. Identifizieren Sie den von Ihrer Anwendung verwendeten Java-TrustStore.Standardmäßig ist dies normalerweise die cacerts-Datei im Sicherheitsverzeichnis der Java-Installation.

  2. Listen Sie die DigiCert-Zertifikate in Ihrem TrustStore mit dem folgenden Befehl auf.

    1. Ersetzen Sie <path-to-truststore> durch Ihren TrustStore-Pfad.
    2. Durchgang: keytool -list -keystore <path-to-truststore> | grep -i "DigiCert"
    3. Geben Sie bei Aufforderung das TrustStore-Kennwort ein.
  3. Vergewissern Sie sich, dass der TrustStore die erforderlichen DigiCert-Stamm- und Zwischenzertifikate für Adobe Experience Manager as a Cloud Service-Endpunkte enthält.Suchen Sie nach Einträgen wie DigiCert Global Root G2 oder anderen DigiCert-Stamm-/Zwischenzertifikaten.

  4. Um Details zu einem bestimmten DigiCert-Zertifikatalias anzuzeigen, führen Sie Folgendes aus:

    keytool -list -v -keystore -alias

  5. Stellen Sie sicher, dass Ihre Java-Anwendung den erwarteten TrustStore und die Java-Version verwendet.

    1. run:java -version
    2. Stellen Sie sicher, dass es keine benutzerdefinierten JVM-SSL-/TrustStore-Einstellungen wie javax.net.ssl.trustStore oder javax.net.ssl.trustStoreType gibt, die den standardmäßigen TrustStore überschreiben.
  6. Wenn OpenSSL die Zertifikatkette validiert, Java jedoch nicht, ist das Problem wahrscheinlich mit der Java-TrustStore-Konfiguration oder fehlenden DigiCert-Zertifikaten verbunden.

    Hinweis: Importieren Sie keine zusätzlichen oder doppelten DigiCert-Zertifikate, es sei denn, dies wird ausdrücklich empfohlen.

  7. Nachdem Sie bestätigt haben, dass die erforderlichen DigiCert-Zertifikate vorhanden sind und der richtige TrustStore verwendet wird, starten Sie Ihre Anwendung neu und überprüfen Sie, ob der SSL-Handshake-Fehler behoben wurde.

recommendation-more-help
experience-cloud-kcs-help-kbarticles