"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

CA-signiertes X.509-Zertifikat mit OpenSSL pruefen

enforcer 14.01.2015 - 11:28 3840 7
Posts

enforcer

What?
Avatar
Registered: Apr 2001
Location: Mäder / Vlbg
Posts: 2419
Hi, ich habe folgendes Problem:
Ich habe ein ofizielles Zertifikat fuer unsere webserver. In Windows kann ich das auch problemlos einspielen. Hab es im .pfx und .crt Format.

Nun versuche ich unter centos 7 einen HAProxy zu installieren und brauch dort das Zertifikat.
Nach ein wenig googlen hab ich gefunden, wie ich das Zertifikat mit openssl konvertieren kann, allerdings blick ich nicht ganz durch:

hab mit:
Code:
openssl pkcs12 -in blabla.pfx -nocerts -out blabal_key.pem
openssl pkcs12 -in blabla.pfx -clcerts -nokeys -out blabla_cert.pem
openssl rsa -in blabla_key.pem -out blabla.key
blabla.key und blabla_cert.pem hab ich dann mit cat zu einem file zusammengefuegt.

wenn ich dieses file mit
Code:
openssl verify bla.pem
teste bekomme ich einen error:
Code:
error 20 at 0 depth lookup:unable to get local issuer certificate

Fehlt mir noch was oder hab ich grundlegend was falsch verstanden?

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11901
Du musst OpenSSL ueber den -CApath-Parameter noch sagen, wo die (intermediate) Certs bis zum CA-Root-Cert liegen; das ist unter RHEL iirc in /etc/ssl/certs/.

lalaker

TBS forever
Avatar
Registered: Apr 2003
Location: Bgld
Posts: 14699
Bitte Überschrift auf "Offizielles" korrigieren ;) Zumindest die Überschrift sollte ohne Rechtsschreibfehler daher kommen.

enforcer

What?
Avatar
Registered: Apr 2001
Location: Mäder / Vlbg
Posts: 2419
das aendert zumindest die Fehlermeldung :(

Code:
[root@satrahap1 certs]# openssl verify blabla.pem -CApath /etc/ssl/certs/
blabla.pem: C = AT, postalCode = 6830, ST = Vorarlberg, L = Rankweil, street = blabla 1, O = blabla, OU = bla, OU = Premium SSL Wildcard, CN = *.blabla.cc
error 20 at 0 depth lookup:unable to get local issuer certificate
Error opening certificate file -CApath
140507886634912:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('-CApath','r')
140507886634912:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
unable to load certificate
unable to load certificate
140507886634912:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE

hab jetzt auch das pem nochmal neu gemacht mit
Code:
openssl pkcs12 -in quelle.pfx -out ziel.pem -nodes
- selbes Ergebnis

Andere Frage: gibt es sowas wie ein Standardverzeichnis, in das man Zertifikate bei RHEL ablegen sollte

^_^

Bloody Newbie
Avatar
Registered: Dec 2004
Location: Austria
Posts: 30
Zitat von enforcer
Zitat von Umlüx
ich kanns schon verstehen wenn die industrie nicht mehr supportete legacy systeme fallen lässt. das ist halt der preis den XP nazis zahlen müssen ;)

Die Parameterreihenfolge ist relevant =>
Code:
openssl verify -CApath /etc/ssl/certs/ blabla.pem 


Zitat von enforcer
Zitat von enforcer
Zitat von Umlüx
ich kanns schon verstehen wenn die industrie nicht mehr supportete legacy systeme fallen lässt. das ist halt der preis den XP nazis zahlen müssen ;)
Code:
/etc/pki/tls/certs/ #Zertifikate
/etc/pki/tls/private/ #private key

enforcer

What?
Avatar
Registered: Apr 2001
Location: Mäder / Vlbg
Posts: 2419
danke, dann zeigt er wieder error 20 at 0 depth lookup:unable to get local issuer certificate
Im enginx wird das zertifikat aber akzeptiert - nur im HAProxy immer noch nicht. Aber das ist ja dann ein anderes Problem.

^_^

Bloody Newbie
Avatar
Registered: Dec 2004
Location: Austria
Posts: 30
Dann dürfte schätzumativ schlicht das Zertifikat der CA oda ein entsprechendes intermediate fehlen.

enforcer

What?
Avatar
Registered: Apr 2001
Location: Mäder / Vlbg
Posts: 2419
Habs inzwischen geschafft.. SELinux hat verhindert, dass HAProxy das Zertifikat richtig laedt.
Mit
Code:
setenforce 0 
ists gegangen. Aber deaktivieren wollte ich SELinux ja eigentlich nicht.
Durch
Code:
setsebool -P haproxy_connect_any 1
und
Code:
setsebool -P authlogin_nsswitch_use_ldap 1
gings dann auch mit aktiviertem SELinux.

Dann hab ich im systemctl noch nen timer fuer den service erstellt, weil die dns aufloesung sonst nicht funktioniert hatte und nun startet der Service einwandfrei :)

Jetzt muss ich nur noch die Config richtig hinbekommen. Kaempf mich grade durch die Doku ;)

Danke auf jeden Fall fuer den Input :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz