OpenSSL kann das Zertifikat des lokalen Ausstellers nur abrufen, wenn CAfile explizit angegeben ist

Ich versuche, für eine App von einem Ubuntu-Server aus eine Verbindung zum Push-Benachrichtigungsdienst von Apple herzustellen. Ich habe erfolgreich das kombinierte .pem-Zertifikat generiert, das von dem von mir verwendeten pyAPNS-Anbieter benötigt wird. Wenn ich jedoch versuche, das Zertifikat mit zu verifizierenopenssl verify, Ich bekommeerror 20 at 0 depth lookup:unable to get local issuer certificate. Es funktioniert, wenn ich die Zertifizierungsstelle explizit spezifiziere (openssl verify apns.pem -CAfile entrust_2048_ca.pem), aber ich habe das Entrust-Zertifikat bereits explizit wie angegeben auf dem System installiertHierKlicken Sie unter "Importieren eines Zertifikats in die systemweite Zertifizierungsstellendatenbank" auf und, soweit ich das verstehediese Seite, alles ist wie es sein sollte (das Zertifikat befindet sich in / usr / lib / ssl / certs und es gibt einen Symlink mit dem Hash).

Das gleiche passiert, wenn ich versuche, eine Verbindung zum APNS selbst herzustellenopenssl s_client: es scheint in Ordnung zu verbinden, wenn ich die CA-Datei explizit spezifiziere, aber ansonsten nicht. PyAPNS sagt mir, dass es keine Verbindung zum APNS-Server herstellen kann, und ich kann nur annehmen, dass dies aus dem gleichen Grund geschieht.

Wie kann OpenSSL die Entrust-Zertifizierungsstelle standardmäßig erkennen, ohne sie jedes Mal explizit anzugeben? Vermisse ich irgendwo einen Schritt?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage