I “m ezt a parancsot használom:
openssl s_client -connect example.com:443 -CAfile /etc/ssl/certs/GTE_CyberTrust_Global_Root.pem
Működik. Ha nem adom meg, hogy a CAfile 20 kódot kapjak. A cert /etc/ssl/certs
és /usr/lib/ssl/certs -> /etc/ssl/certs
Ez is benne van a ca-certificates.crt
Mi szabályozza, hogy az openssl megtalálja-e a tanúsítványomat vagy sem, és hogyan érhetem el, hogy elfogadja ez a tanúsítvány anélkül, hogy kifejezetten megadná?
Megjegyzések
Válasz
Van egy ismert OpenSSL hiba, ahol az s_client nem ellenőrzi az alapértelmezett tanúsítványtárolót, ha nem adja át a -CApath
vagy -CAfile
argumentum. Az Ubuntu 14.04-es OpenSSL az ezt a hibát szenvedi, mivel “bemutatom:
Verzió:
ubuntu@puppetmaster:/etc/ssl$ openssl version OpenSSL 1.0.1f 6 Jan 2014
Nem használja az alapértelmezett tárolót, amikor ne adja át a `-ca:
ubuntu@puppetmaster:/etc/ssl$ openssl s_client -quiet -connect gmail.com:443 depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA verify error:num=20:unable to get local issuer certificate verify return:0
Most átadom a null értéket -CApath
néven, és működik:
ubuntu@puppetmaster:/etc/ssl$ openssl s_client -quiet -connect gmail.com:443 -CApath /dev/null depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority verify return:1 depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA verify return:1 depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2 verify return:1 depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = mail.google.com verify return:1
Sajnos nem hiszem, hogy létezik az érintett OpenSSL verziók listája. Csak úgy lehet tudni, ha teszteljük.
Megjegyzések
- Köszönöm. Ezt a verziót használtam. Úgy tűnik, hogy az OpenSSL 1.1.0 nem oldotta meg a problémát. I ' m nem látja az itt felsorolt problémát: github.com/openssl/openssl/issues Hivatkozhat a problémára?
- It ' s a régi RT kiadáskövetőben . Van egy javítás, amely ' s egy bejelentkezés mögött (vendég: vendég) Ez a ' 3697-es probléma megoldottnak van jelölve. rt.openssl.org/Ti cket / Display.html? id = 3697
- Ok, megerősítettem, hogy ez az 1.1-ben javítva van, legalábbis annak richsalz villájában. A frissítéskor kezdetben nem vettem észre, hogy az alapkönyvtár át lett helyezve
/usr/local/ssl
-re, és amelynek tanúsítvány-könyvtárát nem rendelték/etc/ssl/certs
-re. - Ellenőrizhetem, hogy a hiba létezik-e a CentOS 6.8 verzióban (OpenSSL 1.0.1e-fips 2013. február 11.).
- A
openssl version -d
is megadja az alap konfigurációs könyvtárat …
Válasz
"How to get openssl to use a cert without specifying it via -CAfile".
Ugyanez volt követelmény. Olyan CA-k könyvtárát akartam használni, amelyekben " helyben megbíztam ". Nem kívántam alapértelmezett Trust store
szennyező eredményt.
c_rehash
Mielőtt meghívná a verify
parancsot, a súgóoldal: man verify
a c_rehash
:
rehash beolvassa a könyvtárakat és kiszámítja az egyes hash értékeket " .pem ", " .crt ", " .cer ", vagy " .crl " fájl a megadott könyvtárlistát, és minden fájlhoz szimbolikus linkeket hoz létre
export CERTS=/Users/{path_to_your_certs} [path to openssl]/openssl/bin/c_rehash ${CERTS}
Ellenőrizze a levél cert
openssl verify -CApath ${CERTS} local_leaf.pem local_leaf.pem: OK
A CERTS
.Ha nem csinálnám az újrakezdési lépést, akkor 20-as hibát kapnék unable to get local issuer certificate
.
GTE_CyberTrust_Global_Root.pem
köztes CA? Ha igen, akkor előfordulhat, hogy a webszerver nem tudja kiszolgálni a köztes CA tanúsítványt a webhely tanúsítvánnyal együtt. Ez a webszerver hiányossága kompatibilitási problémákat okozhat egyes számítógépekkel. Másrészt, ha aGTE_CyberTrust_Global_Root.pem
legfelső szintű gyökértanúsítvány, akkor alapértelmezés szerint működnie kell.openssl
nincs konfigurálva egyetlen legfelső szintű gyökértanúsítvánnyal sem? Próbálta már a következőt:google.com:443
?