Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ssl - problem
Forum PHP.pl > Forum > PHP
tsharek
Witam:) Mam do zrobienia małą stronkę, ale która używa SSLa do sprawdzenia wiarygodności użytkownika. Chodzi o to że on będzie miał zainstalowany w przeglądarce unikatowy klucz, który ja muszę sprawdzać. Same hasło niestety nie wystarczy:( (ani ip i inne rzeczy) Poprostu muszę sprawdzić przez SSLa czy kowalski to kowalski (raczej przeglądarka kowalskiego). Da się to wogle zrobić (openssl) a jak tak to jak? z góry dzięki za odpowiedźsmile.gif
chfast
Chyba najprostrzym sposobem ingerencji w przeglądarkę ją pliki cookie. Niestety cookie nie kojarzą się z bezpieczeństwem, ale jest to penwe rozwiązanie.
Jeśli chodzi o instalacje "czegoś" na pewno jakoś można to zrobić (np. dzialery itp.) tylko tu już chyba trzeba rozróżnić każdą przeglądarkę. Da się na pewno w IE i mozilli (chyba pliki *.msi), ale nie mam pojęcia jak można z tego potem korzystać. Zaawansowane zagadnienia...
adwol
Ponieważ żądanie uwierzytelniania certyfikatem uzytkownika następuje podczas negocjowania połączenia SSL, musisz to zrobić w konfiguracji serwera WWW (opis dla Apache'a => http://httpd.apache.org/docs-2.0/ssl/ssl_howto.html).

W PHPie masz dostęp do składników certyfikatu poprzez zmienne serwera, ale są one czysto informacyjne, ponieważ jeśli sterowanie doszło do Twojego skryptu, znaczy że faza autoryzacji już minęła.

Dołóż sobie do konfiguracji serwera:
Kod
SSLOptions +StdEnvVars
.
i zobacz później podczas połączenia https-owego:
[php:1:b4c94919ab]<?php
print_r($_SERVER);
?>[/php:1:b4c94919ab]
Będziesz tam miał pozycje zaczynające się od SSL_ opisujące różne parametry SSLa. Opis wszystkich (dla mod_ssl'a) znajdziesz pod adresem http://www.modssl.org/docs/2.8/ssl_referen...ence.html#ToC25
tsharek
hmm. Da się tak zrobić że jeśli jusz zostało nawiązane połączenie. sprawdzić jaki certyfikat ma klinejnt (poprzez $_SERVER) i porównać z certyfikatem na serwerze kożystając z openssla (może openssl_x509_read). Jak by się tak dało to by bylo idealnie dla mnie. Chodzi mi o identyfikacje użytkownika poprzez certyfikaty (że kowalski to kowalski), żeby nie można było się połączyć do konta kowalskiego z innej przeglądarki nisz kowalskiego:). I jeszcze jedno pytanko: jak się instaluje na przeglądarce jakiś certyfikat?smile.gif
adwol
Cytat
Da się tak zrobić że jeśli jusz zostało nawiązane połączenie. sprawdzić jaki certyfikat ma klinejnt (poprzez $_SERVER) i porównać z certyfikatem na serwerze kożystając z openssla (może openssl_x509_read). Jak by się tak dało to by bylo idealnie dla mnie.

Da się.
[php:1:8b21576c18]<?php
print_r(openssl_x509_parse(openssl_x509_read(file_get_contents('certyfikat.pem'))));
?>[/php:1:8b21576c18]
Obejrz sobie co dostaniesz i porównaj z wartościami z $_SERVER.
Możesz też ograniczać to na etapie serwera WWW.
Cytat
I jeszcze jedno pytanko: jak się instaluje na przeglądarce jakiś certyfikat?smile.gif

Zależy w jakiej i jaki certyfikat. W Mozilli: Edit -> Preferences -> Privacy & Security -> Certificates -> Manage Certificates i tam możesz zaimportować osobisty certyfikat w formacie PKCS#12 (.p12), albo serwera lub CA w formacie DER lub PEM. W MSIE -- nie pamiętam, ale pewnie podobnie.
Jeśli masz go również wystawionego gdzieś na WWW i ma dobry typ MIME, to po wpisaniu jego adresu powinien sam sie zainstalować.
tsharek
wielkie dzięki:) tera mnie czeka testowanie tego:) pozdrawiam całą ekipe php.pl
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.