I ”m käyttämällä tätä komentoa:
openssl s_client -connect example.com:443 -CAfile /etc/ssl/certs/GTE_CyberTrust_Global_Root.pem
Se toimii. Jos en määritä CA-tiedostoa, saan koodin 20. Sertifikaatti on /etc/ssl/certs
ja /usr/lib/ssl/certs -> /etc/ssl/certs
Se sisältyy myös ca-certificates.crt
Mitä hallitaan, voiko openssl löytää sertini vai ei, ja miten saan sen hyväksymään onko tämä varoitus määrittelemättä sitä erikseen?
Kommentit
Vastaa
On tunnettu OpenSSL-virhe, jossa s_client ei tarkista oletusvarmentesäilöä, kun et läpäise -CApath
tai -CAfile
-argumentti. Ubuntu 14.04: n OpenSSL kärsii tästä virheestä, kun ”osoitan:
Versio:
ubuntu@puppetmaster:/etc/ssl$ openssl version OpenSSL 1.0.1f 6 Jan 2014
Oletuskauppaa ei käytetä, kun älä välitä `-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
Nyt välitän nullin -CApath
-muodossa ja se toimii:
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
Valitettavasti en usko, että luettelo ongelmista OpenSSL-versioista on olemassa. Ainoa tapa tietää on testata se.
Kommentit
- Kiitos. Käytin kyseistä versiota. OpenSSL 1.1.0 ei näytä korjaavan ongelmaa. I ' m et näe tässä lueteltua ongelmaa: github.com/openssl/openssl/issues Voitteko viitata ongelmaan?
- Se ' s vanhassa RT-ongelmien seurannassa . Siellä on korjaustiedosto, se ' s kirjautumisen takana (guest: guest) Se ' n numero # 3697, merkitty ratkaistuksi. rt.openssl.org/Ti cket / Display.html? id = 3697
- Ok, vahvistin, että tämä on korjattu 1.1: ssä, ainakin sen richsalz-haarassa. Päivityksen yhteydessä en alun perin huomannut, että perushakemisto oli siirretty
/usr/local/ssl
-kansioon, jossa sertifikaatihakemistoa ei ole yhdistetty/etc/ssl/certs
-kansioon. - Voin varmistaa, että virhe esiintyi CentOS 6.8: ssa (OpenSSL 1.0.1e-fips 11. helmikuuta 2013).
- Myös
openssl version -d
antaa sinulle perusasetushakemiston …
vastaus
"How to get openssl to use a cert without specifying it via -CAfile".
Minulla oli sama vaatimus. Halusin käyttää hakemistoa varmentajista, joihin " luotin " paikallisesti. En halunnut oletus Trust store
saastuttavia tuloksia.
c_rehash
Ennen kuin soitat verify
-komennolle, ohjesivu: man verify
opasti minua käyttämään c_rehash
:
rehash skannaa hakemistot ja laskee jokaisen " .pem ", " .crt ", " .cer " tai " .crl " tiedosto määritetty hakemistoluettelo ja luo symboliset linkit kullekin tiedostolle
export CERTS=/Users/{path_to_your_certs} [path to openssl]/openssl/bin/c_rehash ${CERTS}
Vahvista lehtisertifikaatti
openssl verify -CApath ${CERTS} local_leaf.pem local_leaf.pem: OK
Ladaat juurivarmentajan ja IntCA: n hakemiston CERTS
.Jos en tehnyt uudelleenkäynnistysvaihetta, saat virheilmoituksen 20 unable to get local issuer certificate
.
GTE_CyberTrust_Global_Root.pem
välivarmentaja? Jos näin on, voi olla, että verkkopalvelimesi ei pysty palvelemaan kyseistä CA-varmentetta sivustosi varmenteen kanssa. Tämä verkkopalvelimesi puute saattaa aiheuttaa yhteensopivuusongelmia joidenkin tietokoneiden kanssa. Toisaalta, josGTE_CyberTrust_Global_Root.pem
on ylätason juurivarmenne, sen pitäisi toimia oletusarvoisesti.openssl
ei ole määritetty mihinkään ylätason juurivarmenteisiin? Oletko kokeillutgoogle.com:443
?