Als ich die Antwort von zakjan verfolgte, hatte ich ein Problem, als ich versuchte, mit jquery eine AJAX-Anfrage auf meinem neu gesicherten Server in einer Android-Webansicht auszuführen. Es funktionierte im Browser, aber nicht in meiner App.
Ich habe diese Seite benutzt: https://certificatechain.io/
Ich habe den Text meiner signierten .crt-Datei eingefügt, die ich von Comodo erhalten habe (positiveSSL), und es gab mir eine Zusammenfassung von allem, was ich brauchte. Ich habe es als meine Domain + "chain.crt" gespeichert (siehe unten)
Dann habe ich in meinen Apache-Konfigurationen so etwas für diesen bestimmten virtuellen Host eingegeben:
SSLEngine On
SSLCertificateFile /etc/ssl/localcerts/example_com.crt
SSLCertificateKeyFile /etc/ssl/localcerts/example.com.key
SSLCACertificateFile /etc/ssl/localcerts/example.com.chain.crt
Danach hatte die Webansicht meiner Android-App kein Problem damit, Ajax zum POST auf meinen Server zu verwenden. Ich habe es auf 2 realen Geräten ausprobiert, von denen eines 2.3.4 und eines 4.something ausführt. Und auf dem Emulator läuft 2.3. Alles hat funktioniert.
Ich hoffe das hilft.
SSLCACertificateFile
Direktive hinzuzufügen und auf die CA-Datei zu verweisen, die mir meine Autorität gegeben hat. Es würde nicht funktionieren, wenn ich die anderen Zertifikate einfach mit meiner Zertifikatsdatei verketten würde.SSLCACertificateFile
war die Zeile, die ich verpasst habe. Anfänglich ging ich davon aus, dass meine Zertifizierungsstelle zu neu ist, da SSL funktioniert, wenn von einigen Browsern / Betriebssystemen angefordert, von anderen jedoch nicht. Durch die Verwendung von decoder.link/sslchecker konnte klargestellt werden , dass meine Konfiguration falsch war, und diese Antwort hatte den Fix. Vielen Dank!!Die Kette war in der CRT-Datei, die das ursprüngliche SSL abarbeitete.
Für GoDaddy gibt es ein 2. Zertifikat - gd_bundle.crt
Kopieren Sie diese Informationen und fügen Sie sie dem auf dem Server installierten crt hinzu.
Das ursprüngliche crt auf dem Server hatte also 1 Zertifikat und danach 3 in derselben Datei. Das ist die Kette.
Ich habe immer noch Anker in Kettenproblemen auf ssllabs.com, aber dies ist kein Problem, nur eine Option zum Ein- oder Auslassen - gemäß https://security.stackexchange.com/questions/24561/ssltest-chain-issues enthält Anker / 24566 # 24566
quelle
Sie können das Problem mit der unvollständigen Zertifikatkette manuell lösen, indem Sie alle Zertifikate vom Zertifikat zum vertrauenswürdigen Stammzertifikat verketten (in dieser Reihenfolge exklusiv), um solche Probleme zu vermeiden. Beachten Sie, dass das vertrauenswürdige Stammzertifikat nicht vorhanden sein sollte, da es bereits im Stammzertifikatsspeicher des Systems enthalten ist.
Sie sollten in der Lage sein, Zwischenzertifikate vom Aussteller abzurufen und sie selbst zusammenzufassen. Übrigens, ich habe ein Skript geschrieben, um den Vorgang zu automatisieren. Es benötigt ein Zertifikat, um die Ausgabe korrekt verketteter Zertifikate zu erstellen. https://github.com/zakjan/cert-chain-resolver
quelle