Kann curl nicht auf die importierten CAs zugreifen?

Started by u.n.known, November 19, 2025, 12:19:06 PM

Previous topic - Next topic
Hi,

ich hab zwei interne CAs (Vault). Die per ACME certifikate ausstellen können. Beide haben custom Zertifikate, die von der OpnSense ausgestellt wurden. D.h. die komplette chain ist in OpnSense verfügbar. Wenn ich nun über den ACME-Client ein Zertifikat von einem der Vault holen will, dann fällt das auf die Nase. Ich erhalte den Errorcode 60, der besagt, dass das Zertifikat nicht gültig ist. (CURLE_PEER_FAILED_VERIFICATION (60)).
Kann es sein, dass ich die Ca-Chain noch anders in OpnSense importieren muss? Das es über das Web-Frontend nicht reicht und curl damit die chain damit nicht nutzen kann?

Muss ich die Ca-chain noch irgendwo importieren? Also wie bei ubuntu über den update-ca-certificates prozess?

Danke für Tipps

m.

Ich habe folgendes verstanden:

1. Du hast zwei interne CAs in OpnSense. Haken dran.
2. Diese können per ACME Zertifikate ausstellen. Wie das?

Bei 2 verlierst Du mich. ACME ist ein Protokoll/Verfahren, mit Hilfe dessen man Zertifikate ausstellen kann. OpnSense kann zwar Zertifikate ausstellen, unterstützt m.W. dazu aber nicht das ACME-Verfahren als ACME-Server. ACME wird nur per Plugin in der Rolle als ACME-Client, d.h. als Anforderer, nicht als Aussteller von Zertifikaten in OpnSense unterstützt.

Unabhängig davon werden in jedem Client natürlich nur die in der CA-Chain eingetragenen Root-CAs unterstützt. Wenn Du also auf einem Client per Curl irgend etwas abrufst, was von einer Deiner CAs ausgestellt wurde, musst Du auf dem entsprechenden Client auch die ausstellende CA eingetragen haben oder per Curl-Switch die Verifikation abschalten. Bei OpnSense selbst geht das elegant über "System: Trust: Authorities".
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+

Ich benutze auf der OpnSense in der Tat das ACME Plugin. Das ist ja "under the hood" ein Shell-Skript, was zu bestimmten Tasks curl verwendet. Soweit ist alles okay.

Bislang hab ich nur lets encrypt für extern erreichbare Seiten verwendet. Nun möchte ich, dass OpnSense für eine interne Seite ein internes Zertifikat verwendet.
Dazu müsste das Plugin über die URL einer Custom CA von dem Vault sich das Certifikat holen (Ja, da passiert mehr, aber für die Verdeutlichung reicht es glaub ich :)). Wenn es allerdings versucht das zu tun, schlägt es mit der Fehlermeldung CURLE_PEER_FAILED_VERIFICATION (60) fehl. Da der Vault über ein aktuelles und korrektes Zertifikat verfügt kann ich mir nicht vorstellen das es daran liegt. Dieses Zertifikat ist ausgestellt von der gleichen internen CA, die Komplett (Root-CA + Intermediate CA + Intermediate CA Cloud) auch im Trust/Authorities importiert ist.

Was ich vermute bzw. wonach ich gefragt hab: Kann es sein, dass das curl eben nicht die Chains aus dem Trust/Authorities verwendet? Das wäre für mich die einzige vernünftige Erklärung, warum es zu diesem Fehler kommt.

Hoffe das ich mich besser ausgedrückt hab. :D

Alles klar, Du hast es aber falsch verstanden: Du kannst entweder eigene Zertifikate direkt in der UI selbst erzeugen oder Dir per ACME.sh solche von einer offiziellen ACME-CA holen. Die interne OpnSense-CA beherrscht das ACME-Protokoll nicht, also sind diese Wege nicht kombinierbar, wie ich oben bereits erklärte.

Beide Typen von Zertifikat kannst Du u.a. für das OpnSense Web UI nutzen.
Intel N100, 4* I226-V, 2* 82559, 16 GByte, 500 GByte NVME, ZTE F6005

1100 down / 800 up, Bufferbloat A+