23 messaggi dal 06 dicembre 2005
Salve a tutti, ho un problema che non riesco a risolvere. La situazione è la seguente:
- Server su cui ho installato un webservice di nome WS.asmx in Default Web Site; ho generato un certificato SSL con selfSSL.exe in questo modo
selfssl.exe /T /N:CN=123 /K:1024 /V:7 /S:1 /P:443. Il certificato l'ho installato anche in "Trusted Root Certification Authorities" situato nell SnapIn Certificates di MMC. Quando dal server mi collego come https://123/WS/WS.asmx è corretto ossia la finestra di accettazione del certificato non compare
- Quando mi connetto dal client come https://123/WS/WS.asmx in InternetExplorer mi compare la finestra di accettazione, ma installando il certificato con il Wizard non ricompare più, quindi è corretto

Il problema nasce quando mi collego via applicativo con VB.Net e Visual Studio 2003 in quanto tutte le volte che chiamo il servizio mi compare
"The underlying connection was closed: Could not establish trust relationship with remote server."
Il web reference l'ho creato inserendo https://123/WS/WS.asmx e infatti non mi compare nessuna finestra di accettazione del certificato

Ho trovato la soluzione implementando una classe che aggira l'ostacolo, però essendo il ws utilizzato da applicazioni con diversa tecnologia non mi sembra la soluzione adatta.

Qualcuno sa darmi un aiuto per favore ? E' questione di certificato ? Se uso un certificato "a pagamento" ossia riconosciuto il problema si risolverebbe ?
Scusate per la lunghezza della domanda.
Grazie mille
Come l'hai risolto? Perché anch'io ho avuto un problema simile che ho risolto implementando un ICertificatePolicy custom che accettasse anche certificati con nome di server non validi. Il problema non è il ws. Molto probabile che con un certificato vero il problema si risolva.
Magari prova anche te con un ICertificatePolicy (da impostare con la proprietà CertificationPolicy) e vedi il problem che ti passa così capisci meglio cosa non va.

Ciao

Il mio blog
Homepage
23 messaggi dal 06 dicembre 2005
Anch'io l'ho risolto con il tuo metodo. Il problema è che il ws dovrà essere utilizzato anche con tecnologie diverse come per esempio java, quindi non so se riusciranno a fare la stessa cosa. Non riesco a capire dov'è il problema. Se chiamo via applicazione il ws dal server tutto funziona correttamente, è dall'esterno che non riesco.
Io uso una classe del genere per aggirarlo:

Public Class TrustAllCertificatePolicy
Implements System.Net.ICertificatePolicy

Public Function CheckValidationResult(ByVal srvPoint As System.Net.ServicePoint, _
ByVal cert As System.Security.Cryptography.X509Certificates.X509Certificate, _
ByVal request As System.Net.WebRequest, _
ByVal certificateProblem As Integer) As Boolean _
Implements System.Net.ICertificatePolicy.CheckValidationResult

Return True

End Function

End Class

però non riesco a capire come fare la stessa cosa "manualmente"
Guarda certificateProblem cosa ti dà così capisci l'errore in base a queste costanti

CertEXPIRED = 2148204801,
CertVALIDITYPERIODNESTING = 2148204802,
CertROLE = 2148204803,
CertPATHLENCONST = 2148204804,
CertCRITICAL = 2148204805,
CertPURPOSE = 2148204806,
CertISSUERCHAINING = 2148204807,
CertMALFORMED = 2148204808,
CertUNTRUSTEDROOT = 2148204809,
CertCHAINING = 2148204810,
CertREVOKED = 2148204812,
CertUNTRUSTEDTESTROOT = 2148204813,
CertREVOCATION_FAILURE = 2148204814,
CertCN_NO_MATCH = 2148204815,
CertWRONG_USAGE = 2148204816,
CertUNTRUSTEDCA = 2148204818

Non è un problema del ws comunque, ma del certificato

Ciao

Il mio blog
Homepage
23 messaggi dal 06 dicembre 2005
Scusa ma non sono molto ferrato. Mi spieghi cosa devo fare di preciso? Magari mi metti un po di Codice ? Il certificateProblem che cos'è? Scusa ma non sono proprio pratico di questi certificati

Grazie mille
E' il parametro del metodo CheckValidationResult  Debuggi così vedi qual'è il problema che gli indichi di ignorare ritornando true.

Ciao

Il mio blog
Homepage
23 messaggi dal 06 dicembre 2005
Grazie mille proverò a fare come dici
23 messaggi dal 06 dicembre 2005
Mi sono scritto un log e utilizzato il metodo inditicato in http://msdn.microsoft.com/library/ita/default.asp?url=/library/ITA/cpref/html/frlrfsystemneticertificatepolicyclasstopic.asp e mi è uscito

Problem code 0x{0:X8} = -2146762487
Unknown Certificate Problem

Sinceramente non so più che pesci pigliare

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.