Sziasztok!
Az alábbi problémám lenne:
Adott egy Apache 2, az alábbi konfig részlettel:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/pma.us.to-cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/pma.us.to-nopasswd-key.pem
SSLCertificateChainFile /etc/apache2/ssl/cacert.pem
SSLCACertificateFile /etc/apache2/ssl/cacert.pem
SSLCARevocationFile /etc/apache2/ssl/revoke.crl
SSLProtocol all -SSLv2 -SSLv3
SSLVerifyClient require
SSLVerifyDepth 3
SSLOptions +StdEnvVars +ExportCertData +StrictRequire
A bajom ezzel az, hogy csak a saját self-signed certjeimet fogadja el.
Mivel lehetne ezt a csodát rávenni, hogy a saját tanúsítványszolgáltatómtól eltérő kliens oldali certeket is elfogadja (pl.: e-személyin található tanúsítványt, vagyis ezzel is tudjak hitelesíteni)? Már fél napja bújom a netet, de eddig nem jutottam előrébb.
Előre is köszönöm annak, aki előrébb visz a dologban.
- 1210 megtekintés
Hozzászólások
SSLCACertificateFile -> ezt kuka
SSLCACertificatePath /etc/ssl/certs
A /etc/ssl/certs-be pedig bepakolod az összes szükséges root tanúsítványt. (apt-get install ca-certificates és társai)
- A hozzászóláshoz be kell jelentkezni
SSLCACertificatePath esetén célszerű a tanúsítványokat külön mappába tenni. Pl: /etc/ssl/cacerts.
- A hozzászóláshoz be kell jelentkezni
Google a barátod. Kulcsszavak: "sslcacertificatefile multiple certificates"
Apache weboldalon nézd meg a leírást: http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslcacertificatef…
Használhatod a SSLCACertificateFile-t vagy a SSLCACertificatePath. Utóbbinál kell a könyvtárban egy c_rehash-t futtatni.
- A hozzászóláshoz be kell jelentkezni
http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslcacertificatef…
http://httpd.apache.org/docs/current/mod/mod_ssl.html#sslcacertificatep…
Nem a saját self signed cert-jeidet aláíró CA-dat kellene megadni kliens cert ellenőrzéshez...
- A hozzászóláshoz be kell jelentkezni
Nos amit megpróbáltam:
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/pma.us.to-cert.pem
SSLCertificateKeyFile /etc/apache2/ssl/pma.us.to-nopasswd-key.pem
SSLCertificateChainFile /etc/apache2/ssl/cacert.pem
SSLProtocol all -SSLv2 -SSLv3
SSLCACertificatePath /etc/apache2/ssl/ca/hash/
SSLVerifyClient require
SSLVerifyDepth 3
SSLOptions +StdEnvVars +ExportCertData +StrictRequire
Az /etc/apache2/ssl/hash mappában jelenleg benne van a két CA (self signed, illetve az e-személyis govca is) pem-ben, a hash-es linkek létrehozva a c_rehash segítségével.
Apache restart után a helyzet változatlan, nem kéri az e-személyis certet, pedig win alatt a tanúsítvány kezelőben szépen látszódik.
szerk: a Főtanúsítvány kiadó (govca-root) is a mappában van, csak ez kimaradt...
szerk2: A saját CA-m is kell, mert az ezzel létrehozott certeket is el kell fogadni
- A hozzászóláshoz be kell jelentkezni
/etc/apache2/ssl/hash != /etc/apache2/ssl/ca/hash/
- A hozzászóláshoz be kell jelentkezni
Ez csak elírás volt, a mappa mindkét esetben /etc/apache2/ssl/ca/hash/
- A hozzászóláshoz be kell jelentkezni
Apache error logot nézted? Messages fájlt nézted? Valamit hibát kellene írniuk.
- A hozzászóláshoz be kell jelentkezni
Néztem és az egyedüli hibaüzenet, ami visszajön az a böngészőtől van. Méghozzá ERR_BAD_SSL_CLIENT_AUTH_CERT hiba.
Kezdem azt érezni, hogy a windows 10 + reiner basis kártyaolvasó valamiért nem 100%-os megoldás.
Viszont mindjárt megpróbálom ubi 16.04 lts alól is a dolgot, remélhetőleg legalább valami értelmezhető hibaüzenetet kapok.
- A hozzászóláshoz be kell jelentkezni
Pedig a szerveren látnod kellene valamit a logban. SSL requesteket logolod?
Esetleg próbáld meg a gépen megnézni openssl-lel. Ott több infot fogsz látni.
Ácsi: a /etc/apache2/ssl/revoke.crl fájl hogy áll neked elő?
- A hozzászóláshoz be kell jelentkezni
A revoke.crl jelen esetben így néz ki:
Ez a CRL: http://cca.hiteles.gov.hu/crl/GOVCA-CCA.crl "openssl crl -inform der -in GOV..." parancssal átalakítva PEM formátummá.
Egyébként a self signed kliens cert még úgy is működik, hogy a revoke.crl-ben nem szerepel a self signed crl-je, csak a NISZ-es.
A logolás pedig így megy: "ErrorLog /var/log..., CustomLog /var/log/... combined"
Viszont sem a custom access/error logban, sem a globális error/access logban nincs semmi.
Holnapig viszont jegelem a témát és tiszta fejjel virtuális gépen egy friss debian netinst+apache2 kombóval újra nekifutok. Self signed lesz a szerver cert, a kliens CA+CRL pedig csak a NISZ, ezzel kiküszöbölve minden lehetséges hibát.
- A hozzászóláshoz be kell jelentkezni
[MEGOLDVA]
Először is: köszönöm mindenkinek a hozzászólást, viszont a probléma részben saját magát megoldotta.
Ha kiveszem az SSLCACertificatePath-ot, illetve RevocationFile-t, akkor minden létező tanúsítványt felajánl a böngésző, egyedül a NISZ-est nem. Passzolom, hogy ez most a reiner hibája, vagy a windows 10-é (esetleg éppen olyan a csillagok együttállása), de mindenesetre ez tipikusan a nem hibás részben a hiba keresésének esete volt.
Windows 7 alól teszek még egy próbát, ennek az eredményét beleszerkesztem ebbe a hozzászólásba, mint tanulság.
- A hozzászóláshoz be kell jelentkezni