Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Web Services, XML
[WCF] Problema di autenticazione con certificati
martedì 09 febbraio 2010 - 17.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
berto1982
Profilo
| Newbie
3
messaggi | Data Invio:
mar 9 feb 2010 - 17:24
Ciao a tutti,
ho realizzato un Web Service con autenticazione tramite certificati. I certificati sul server su cui faccio il deploy sono in LOCAL_MACHINE\MY. Se non eseguo l'applicazione come administrator (cosa che mi inquieta non poco) non riesco ad accedere alla chieve pubblica del certificato del servizio.
Ho provato ad assegnare i diritti sia da mmc direttamente sul certificato che con WinHttpCertCfg.exe ma non cambia niente resta l'errore che non riesce ad accedere alla chiave. Esiste una soluzione?
Grazie
Massimo
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
mar 9 feb 2010 - 22:37
ciao
i certificati che utilizzi per autenticazione dovresti metterli in localuser/My
altrimenti l'utente dell'apppool che esegue il servizio dovrebbe essere appunto un amministratore del sistema, cosa che garantirebbe il massimo del rischio e il minimo della sicurezza
come utente, utilizzane uno applicativo con pochi diritti (User semplice)
quando installi i servizi nel suo utente, lancia da comando
runas: <username> mmc
vai su Add Snap-in e poi certificati.
li vai in Personal
ciao
Antonio Esposito
MCTS, MCP
http://blogs.dotnethell.it/espositos
berto1982
Profilo
| Newbie
3
messaggi | Data Invio:
mer 10 feb 2010 - 09:03
Ciao,
niente da fare ho messo il certificato con chiave private in CURRENTUSER\PERSONAL (Per il server) e CURRENTUSER\THRUSTED PEOPLE (Per il client) di un utente creato sul server (Utente normale) ho configurato l'application pool della web application per eseguire come quell'utente. Ottengo sempre il messaggio:
The certificate 'CN=AuthService' must have a private key that is capable of key exchange. The process must have access rights for the private key.
Ho provato anche ad assegnare all'utente il ruole Administrators (tanto per provare) e da lo stesso errore...
Se metto i certificati in CURRENTUSER\PERSONAL (Per il server) e CURRENTUSER\THRUSTED PEOPLE (Per il client) dell'utente Administrator e configuro l'application pool per eseguire come Administrator tutto fuziona.
A questo punto mi sorge un dubbio, ma esiste una policy da settare per permettere all'utente di accedere alle private key all'interno del proprio store certificate?
Hai qualche idea??
Grazie mille
Massimo
AGGIORNAMENTO:
Ho risolto.. Nell'application Pool non avevo messo a Yes il Load User Profile... Senza non funzia!
Grazie Ancora
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
mer 10 feb 2010 - 13:22
esatto ;)
se non carichi il profilo nell'apppool non riesce a tirarsi su la chiave privata del certificato e quindi a crittare il messaggio
ciao
Antonio Esposito
MCTS, MCP
http://blogs.dotnethell.it/espositos
berto1982
Profilo
| Newbie
3
messaggi | Data Invio:
mer 10 feb 2010 - 15:27
Ti chiedo un'altra cosa... Volevo far passare il traffico su HTTPS. Il server web usa un certificato valido (ottenuto da un CA) ho configurato in modo da usare TransportWithMessageCredential e sistemato le cose nella configurazione in modo da usare HTTPS per il trasporto. Quando mi collego con il client mi dice:
Unhandled Exception: System.ServiceModel.Security.SecurityNegotiationException: Could not establish trust relationship for the SSL/TLS secure channel with authority 'XXX'. ---> System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. ---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
La domanda è questa... posso usare un certificato per il servizio per crittare il messaggio (come ho fatto fino ad ora) e usarne un'altro per HTTPS/SSL??
Grazie
Massimo
tonyexpo
Profilo
| Senior Member
229
messaggi | Data Invio:
gio 11 feb 2010 - 22:20
Ciao, scusa il ritardo ;)
x l'errore verifica di aver inserito tra i certificati Trust e la relativa CA tra le Trust Roots sul sistema client
e verifica anche che non sia attiva la revoca dei certificati se usi un certificato di test, altrimenti sarà sempre invalidato
x la questione dei due certificati: non è possibile di default perchè la configurazione del certificato server è unica per l'HTTPS e per l'autenticazione, altrimenti puoi creare un custo binding che utilizza 2 diversi certificati
ciao
Antonio Esposito
MCTS, MCP
http://blogs.dotnethell.it/espositos
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !