1 messaggio dal 30 giugno 2021
buongiorno a tutti,
premetto che non ho mai lavorato con i certificati e tanto meno con gli WebService, se non con alcuni WS aperti senza certificato e senza credenziali di accesso.

con una PA dobbiano scambiare in SOAP dei dati in formato xml.
Ci è stato rilasciato un certificato in formato cer con la sola chiave pubblica, un indirizzo endpoint, un file SoapHeader e un file WSDL.
Sto preparando un client per lo scambio dei file e ho fatto queste operazioni:

1) ho importato il file WSDL senza nessun problema;
2) ho scritto questo codice:
'// certificato
Dim pStrPathCertificato As String = "certificato.cer"
Dim pObjCertificato = New System.Security.Cryptography.X509Certificates.X509Certificate2(pStrPathCertificato)

'// imposta l'endpoint
Dim pObjEndPoint = New EndpointAddress(New Uri("indirizzo_endpoint"))

'// imposta il binding
Dim pObjBinding = New BasicHttpsBinding()
pObjBinding.Security.Mode = SecurityMode.Transport
pObjBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate
pObjBinding.MessageEncoding = WSMessageEncoding.Text

'// imposta il protocollo di sicurezza
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3

'// assegna l'endpoint e il binding a WEB SERVICE
Dim pObjWS As nome_webservice.ServiceClient = New nome_webservice.ServiceClient(pObjBinding, pObjEndPoint)

'// assegna il certificato a WEB SERVICE
pObjWS.ClientCredentials.ClientCertificate.Certificate = pObjCertificato
pObjWS.Endpoint.Contract.ProtectionLevel = ProtectionLevel.EncryptAndSign
pObjWS.ClientCredentials.ServiceCertificate.DefaultCertificate = New X509Certificate2(pStrPathCertificato)
pObjWS.ClientCredentials.ServiceCertificate.SslCertificateAuthentication = New X509ServiceCertificateAuthentication

'// imposta le credeziali di accesso
pObjWS.ClientCredentials.UserName.UserName = utente
pObjWS.ClientCredentials.UserName.Password = password

Try
'// Richiamo il metodo GetVersion
Dim sText As String = pObjWS.GetVersion()
Catch ex As Exception
MessageBox.Show(String.Format("Errore: {0}", ex.Message))
End Try

ma va in errore con il seguente messaggio: Impossibile stabilire un canale sicuro SSL/TLS con l’autorità ....

mi è stato detto che passo solo il certificato pubblico in formato PEM privo della chiave privata.

la domanda è:
la chiave privata da dove la recupero? la devono rilasciare loro, sono io che la devo estrarre da qualche certificato installato sul mio pc o la devo generare con openssl?

Grazie
Efisio
2 messaggi dal 17 giugno 2021
la chiave privata è nella smart card/dispositivo di firma digitale.

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.