Sie mischen die Dinge ein kleines bisschen.
authenticateUser();
läuft auf dem Server, während die Authentifizierung auf dem Client erfolgt. Sie können nicht mitten in der Ausführung eines PHP-Skripts für eine Client-Authentifizierung anhalten und dann das PHP-Skript weiter ausführen.
Als Lösung für Ihre Frage, könnte dies in Ihrem Fall:
if(authenticationNeeded)
{
// redirect to a page that requires authentication that does what index was supposed to do.
redirect('index_ssl.php');
}
von .htaccess
verwenden Sie SSLVerifyClient require
nur für einige der Verzeichnisse/Dateien definieren.
Der entscheidende Punkt ist: Ihr Webserver (Apache in diesem Fall) benötigt ein Client-Zertifikat, um Zugriff auf alle Verzeichnisse/Dateien zu gewähren, für die Sie SSLVerifyClient require
angeben.
Abschließend gibt es keine Möglichkeit zu tun, was Sie wollen. Sie können nur Dateien/Verzeichnisse haben, die entweder ein Client-Zertifikat benötigen oder nicht. Es gibt keine Möglichkeit, mitten in einer PHP-Datei anzuhalten, um ein Client-Zertifikat zu verlangen, aber Sie können zu einem, der einen benötigt, umleiten.
ok. Nachdem der Webserver die Authentifizierung durchgeführt hat, ist es in PHP möglich, alle Daten des Client-Zertifikats/der Authentifizierung zu überprüfen und/oder zu lesen. – Massimo