2012-11-08 20 views
7

JKJSopenSSL Zertifikat-Überprüfung auf Linux

Ich habe diese Kette von Zertifikaten: rcert.pem (self-signed) -> scert.pem -> ccert.pem

Alle drei Zertifikate sind generiert von mir.Keine Internetverbindung wird überall verwendet.Dies ist perfekt offline arbeiten. Nun unten sind einige Befehle und deren Ausgabe:

[email protected]:~/hari$ openssl verify rcert.pem 
rcert.pem: C = IN, ST = OM, L = OM, O = HARI, OU = HARI, CN = OM, emailAddress = OM 
error 18 at 0 depth lookup:self signed certificate 
OK 
[email protected]:~/hari$ openssl verify -CAfile rcert.pem scert.pem 
scert.pem: OK 
[email protected]:~/hari$ openssl verify -CAfile rcert.pem rcert.pem 
rcert.pem: OK 
[email protected]:~/hari$ openssl verify -CAfile rcert.pem -untrusted scert.pem ccert.pem 
ccert.pem: C = IN, ST = HARI, L = HARI, O = HARI, OU = HARI, CN = HARI, emailAddress = HARI 
error 24 at 1 depth lookup:invalid CA certificate 
OK 

Warum Fehler 24 created.How ist es zu entfernen, ist es wie etwas vertrauenswürdig oder nicht vertrauenswürdigen?

Vielen Dank.

Antwort

17

JKJS

Got Antwort meiner Frage:

1) Erstellt Root-CA-Zertifikat durch diese Befehle:

openssl req -newkey rsa:1024 -sha1 -keyout rootkey.pem -out rootreq.pem 

openssl x509 -req -in rootreq.pem -sha1 -signkey rootkey.pem -out rootcert.pem 

2) installierte CA-Zertifikat als vertrauenswürdiges Zertifikat durch folgende Befehle:

sudo mkdir /usr/share/ca-certificates/extra 

sudo cp rootcert.pem /usr/share/ca-certificates/extra/rootcert.crt 

sudo dpkg-reconfigure ca-certificates 

sudo update-ca-certificates 

3) Zwischenzertifikat erstellt, signiert von root CA durch folgende Befehle:

openssl req -newkey rsa:1024 -sha1 -keyout skey.pem -out sreq.pem 

sudo openssl x509 -req -in sreq.pem -sha1 -CA /etc/ssl/certs/rootcert.pem -CAkey rootkey.pem -CAcreateserial -out scert.pem 

4) Erstellt Client-Zertifikat von Zwischen CA durch folgende Befehle unterzeichnet:

openssl req -newkey rsa:1024 -sha1 -keyout ckey.pem -out creq.pem 

openssl x509 -req -in creq.pem -sha1 -CA scert.pem -CAkey skey.pem -CAcreateserial -out ccert.pem 

Nun Vertrauenskette funktioniert gut:

1) Überprüfung der Wurzel CA

openssl verify rootcert.pem 
rootcert.pem: OK 

2) Überprüfung der Zwischen CA

openssl verify scert.pem 
scert.pem: OK 

3) Überprüfung des Client-Zertifikats

openssl verify -CAfile scert.pem ccert.pem 
ccert.pem: OK 
+1

Nun auf der Suche nach der Lösung getan. Ein nettes und vollständiges Mini-Tutorial. Kleine Bemerkung für diejenigen, die dies jetzt finden, ändern Sie es auf 2048 Bytes und sha256, da diese heutzutage häufiger sind. – YorickH

+2

Warnung, die obigen Befehle zur Überprüfung der Zertifikatskette sind toleranter, als Sie vielleicht erwarten! Zusätzlich zur Überprüfung der angegebenen CAfile suchen sie standardmäßig auch nach übereinstimmenden CAs im Verzeichnis certs des Systems, z./etc/ssl/certs. Um dieses Verhalten zu verhindern und sicherzustellen, dass Sie Ihr bestimmtes CA-Zertifikat überprüfen, übergeben Sie auch eine Option -CApath mit einem nicht vorhandenen Verzeichnis, z. B .: "openssl verify -CApath nosuchdir -CAfile sctor.pem ccert.pem" – DSimon

+0

dies ist sehr cool, funktioniert auf Linux. aber wie installiere ich root cert auf mac ?? – prayagupd

Verwandte Themen