Autore Topic: https  (Letto 5415 volte)

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
https
« il: 04 Ottobre 2013, 15:11:42 CEST »
0
Come si realizza una chiamatga post usando https??
Grazie a tutti, ciao.

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:https
« Risposta #1 il: 04 Ottobre 2013, 16:46:38 CEST »
0
Esattamente come fai una chiamata POST su http, basta che specifichi https:// al posto di http:// nella URI

Per un esempio di POST http (e https, non cambia)

Executing a HTTP POST Request with HttpClient - Android Snippets

Codice (Java): [Seleziona]
public void postData() {
    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("https://yoursite.com/posturl");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("id", "12345"));
        nameValuePairs.add(new BasicNameValuePair("stringdata", "AndDev is Cool!"));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
       
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
}

C'è anche una bella libreria di Bradipao con annesso tutorial
[facile] utilizzo della libreria android-async-http - Android Developers Italia
« Ultima modifica: 04 Ottobre 2013, 16:48:10 CEST da uglyicons »
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:https
« Risposta #2 il: 04 Ottobre 2013, 18:07:19 CEST »
0
C'è anche una bella libreria di Bradipao con annesso tutorial
[facile] utilizzo della libreria android-async-http - Android Developers Italia

Intervengo solo per smentire il fatto che sia una mia libreria.  :D :D :-P
E' mio solo il tutorial.

A parte gli scherzi, ci sono tantissime librerie analoghe, per il tutorial ne ho scelta una tra quelle più semplici da usare, così che possa fare da riferimento per gli utenti.

Un'altra usatissima è ION : https://github.com/koush/ion

Se poi si vuole qualcosa di più generale, per rendere asincrono qualsiasi attività, ROBOSPICE : https://github.com/octo-online/robospice
« Ultima modifica: 04 Ottobre 2013, 18:13:47 CEST da bradipao »
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:https
« Risposta #3 il: 07 Ottobre 2013, 11:07:10 CEST »
0
Grazie per le vostre risposte, solo che io avevo prticamente già implementato una chiamata http più o meno come mi avete suggerito anche voi. Il problema è che ora devo farla diventare https. Cosa dovrei modificare??

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:https
« Risposta #4 il: 07 Ottobre 2013, 11:25:49 CEST »
0
Hai provato a cambiare solo la URI in https ?

Oppure la domanda era riferita a come fare per abilitare l'https sul server ?
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:https
« Risposta #5 il: 07 Ottobre 2013, 11:27:54 CEST »
0
Ho inserito il certificato nella cartella raw. Ma credo di avere comunque un problema di certificazione. Quindi il codice dovrebbe andare bene quello della post http??
Ecco il log
Codice: [Seleziona]
10-07 11:23:52.076: W/System.err(23726): javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
10-07 11:23:52.076: W/System.err(23726):         at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
10-07 11:23:52.076: W/System.err(23726):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-07 11:23:52.076: W/System.err(23726):         at com.fisiosamsung.GUI.FeedbackActivity$2$GetXMLTask.getOutputFromUrl(FeedbackActivity.java:99)
10-07 11:23:52.076: W/System.err(23726):         at com.fisiosamsung.GUI.FeedbackActivity$2$GetXMLTask.doInBackground(FeedbackActivity.java:89)
10-07 11:23:52.076: W/System.err(23726):         at com.fisiosamsung.GUI.FeedbackActivity$2$GetXMLTask.doInBackground(FeedbackActivity.java:1)
10-07 11:23:52.076: W/System.err(23726):         at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-07 11:23:52.076: W/System.err(23726):         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-07 11:23:52.081: W/System.err(23726):         at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-07 11:23:52.081: W/System.err(23726):         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-07 11:23:52.081: W/System.err(23726):         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-07 11:23:52.081: W/System.err(23726):         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-07 11:23:52.081: W/System.err(23726):         at java.lang.Thread.run(Thread.java:856)
10-07 11:23:52.346: W/System.err(23726): javax.net.ssl.SSLPeerUnverifiedException: No peer certificate
10-07 11:23:52.346: W/System.err(23726):         at org.apache.harmony.xnet.provider.jsse.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:137)
10-07 11:23:52.346: W/System.err(23726):         at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:93)
10-07 11:23:52.346: W/System.err(23726):         at org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:381)
10-07 11:23:52.351: W/System.err(23726):         at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:165)
10-07 11:23:52.351: W/System.err(23726):         at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
10-07 11:23:52.356: W/System.err(23726):         at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
10-07 11:23:52.356: W/System.err(23726):         at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
10-07 11:23:52.356: W/System.err(23726):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
10-07 11:23:52.361: W/System.err(23726):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
10-07 11:23:52.361: W/System.err(23726):         at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-07 11:23:52.361: W/System.err(23726):         at com.fisiosamsung.GUI.FeedbackActivity$2$GetXMLTask2.getOutputFromUrl(FeedbackActivity.java:133)
10-07 11:23:52.361: W/System.err(23726):         at com.fisiosamsung.GUI.FeedbackActivity$2$GetXMLTask2.doInBackground(FeedbackActivity.java:123)
10-07 11:23:52.361: W/System.err(23726):         at com.fisiosamsung.GUI.FeedbackActivity$2$GetXMLTask2.doInBackground(FeedbackActivity.java:1)
10-07 11:23:52.361: W/System.err(23726):         at android.os.AsyncTask$2.call(AsyncTask.java:287)
10-07 11:23:52.361: W/System.err(23726):         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
10-07 11:23:52.361: W/System.err(23726):         at java.util.concurrent.FutureTask.run(FutureTask.java:137)
10-07 11:23:52.361: W/System.err(23726):         at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
10-07 11:23:52.366: W/System.err(23726):         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
10-07 11:23:52.366: W/System.err(23726):         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
10-07 11:23:52.366: W/System.err(23726):         at java.lang.Thread.run(Thread.java:856)

Post unito: 07 Ottobre 2013, 11:28:41 CEST
Si ho cambiato la URI in https ma ciò che ottengo è il log che ho postato qui sopra

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:https
« Risposta #6 il: 07 Ottobre 2013, 11:31:37 CEST »
0
Ho inserito il certificato nella cartella raw.

Non ho ben capito cosa intendi...
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:https
« Risposta #7 il: 07 Ottobre 2013, 11:37:19 CEST »
0
Se utilizzi una chiamata https dovresti certificare il server, almeno cosi ho capito

Post unito: 07 Ottobre 2013, 11:54:58 CEST
infatti dovrebbe essere proprio come ti ho detto ma non so dove mettere il certificato e il codice ad esso associato.
Se leggi questo link dovrebbe essere chiaro che il problema è questo
Security with HTTPS and SSL | Android Developers

Post unito: 07 Ottobre 2013, 12:49:31 CEST
X ora sono arrivato a questo punto:

Codice (Java): [Seleziona]
// Load CAs from an InputStream
                // (could be from a resource or ByteArrayInputStream or ...)
                CertificateFactory cf = CertificateFactory.getInstance("X.509");
                // qui non so cosa mettere perchè dovrei prendere il certificato che è in res/raw
                InputStream caInput = new BufferedInputStream(new FileInputStream("res/raw/att02173keystore"));
                Certificate ca;
                try {
                    ca = cf.generateCertificate(caInput);
                    System.out.println("ca=" + ((X509Certificate) ca).getSubjectDN());
                } finally {
                    caInput.close();
                }

                // Create a KeyStore containing our trusted CAs
                String keyStoreType = KeyStore.getDefaultType();
                KeyStore keyStore = KeyStore.getInstance(keyStoreType);
                keyStore.load(null, null);
                keyStore.setCertificateEntry("ca", ca);

                // Create a TrustManager that trusts the CAs in our KeyStore
                String tmfAlgorithm = TrustManagerFactory.getDefaultAlgorithm();
                TrustManagerFactory tmf = TrustManagerFactory.getInstance(tmfAlgorithm);
                tmf.init(keyStore);

                // Create an SSLContext that uses our TrustManager
                SSLContext context = SSLContext.getInstance("TLS");
                context.init(null, tmf.getTrustManagers(), null);
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(url2);
                Log.e("Connection",httppost.getURI().toString());
                httppost.setEntity(new UrlEncodedFormEntity(pp));
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity entity = response.getEntity();
                   
            }catch(Exception e){
                 Log.e("log_tag", "error post "+e.toString());
            }
                }      

mi sapete aiutare??

il log in questo momento è:
Codice: [Seleziona]

10-07 12:28:49.926: E/log_tag(24032): error post java.io.FileNotFoundException: /res/raw/att02173keystore: open failed: ENOENT (No such file or directory)

« Ultima modifica: 07 Ottobre 2013, 12:49:31 CEST da filipposapo, Reason: Merged DoublePost »

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:https
« Risposta #9 il: 07 Ottobre 2013, 17:13:09 CEST »
0
tutto molto interessante, sto capendo un bel po' di cose però la maggior parte dei tutorial richiede il certificato. Se io lo dovessi già avere e inserirlo nel codice del mio client android non ho capito come dovrei fare. Che ne pensate?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:https
« Risposta #10 il: 07 Ottobre 2013, 17:35:11 CEST »
0
tutto molto interessante, sto capendo un bel po' di cose però la maggior parte dei tutorial richiede il certificato. Se io lo dovessi già avere e inserirlo nel codice del mio client android non ho capito come dovrei fare. Che ne pensate?

Purtroppo non so proprio come aiutarti su questa implementazione specifica. Fossi in te prenderei in considerazione l'uso di una delle tante librerie che gestiscono automaticamente gran parte delle problematiche.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:https
« Risposta #11 il: 08 Ottobre 2013, 09:36:07 CEST »
0
Ti ringrazio, ora cerco di vedere se trovo qualcosa di utile e magari lo condivido qui. Ciao

Post unito: 08 Ottobre 2013, 09:52:54 CEST
a proposito di questo mi sapresti dire come utilizzare una risorsa che è contenuta nella cartella raw del progetto?
« Ultima modifica: 08 Ottobre 2013, 09:52:54 CEST da filipposapo, Reason: Merged DoublePost »

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:https
« Risposta #12 il: 10 Ottobre 2013, 10:59:27 CEST »
0
Ho provato una nuova implementazione ora pero ottengo connection refused, mi sapete aiutare?
Posto il codice
Codice (Java): [Seleziona]
package com.example.prova;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.HttpProtocolParams;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends Activity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                ArrayList<NameValuePair> pp = new ArrayList<NameValuePair>();  
        pp.add(new BasicNameValuePair("IdPaziente", "50"));
        pp.add(new BasicNameValuePair("IdMedico", "1"));
        pp.add(new BasicNameValuePair("fdaPaziente", "calmo"));
            String url2="https://192.168.1.60:8443/Fisio/android/inserisciFpaziente.jsp";  
                Call(url2,pp);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                // Inflate the menu; this adds items to the action bar if it is present.
                getMenuInflater().inflate(R.menu.main, menu);
                return true;
        }
        public static String Call(String URL,  ArrayList<NameValuePair> postParameters)
        {
            BufferedReader in = null;
            DefaultHttpClient httpClient;
            StringBuffer sb = new StringBuffer();  
            try{
                httpClient = CustomHttpClient.getHttpClient();

                HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false); //making 3G network works*
                HttpPost request = new HttpPost(URL);
                UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParameters);
                request.setEntity(formEntity);
                HttpResponse response = httpClient.execute(request);
                in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
                String line = "";
                String NL = System.getProperty("line.separator");
                while ((line = in.readLine()) != null) {
                sb.append(line + NL);
                System.out.println();
                }
                in.close();

            }catch(Exception ex)
            {
                ex.printStackTrace();

            }
            return sb.toString();
        }

}

e la classe è
Codice (Java): [Seleziona]
package com.example.prova;

import org.apache.http.HttpVersion;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;

public class CustomHttpClient {
private static DefaultHttpClient customHttpClient;

/** A private Constructor prevents instantiation */
private CustomHttpClient() {
}

public static synchronized DefaultHttpClient getHttpClient() {
    if (customHttpClient == null) {
        HttpParams params = new BasicHttpParams();
        HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
        HttpProtocolParams.setContentCharset(params,
                HTTP.DEFAULT_CONTENT_CHARSET);
        HttpProtocolParams.setUseExpectContinue(params, true);
        HttpProtocolParams.setUserAgent(params, "Mozilla/24.0 (Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83) AppleWebKit/533.1(KHTML, like Gecko) Version/4.0 Mobile Safari/533.1");
        ConnManagerParams.setTimeout(params, 1000);
        HttpConnectionParams.setConnectionTimeout(params, 5000);
        HttpConnectionParams.setSoTimeout(params, 10000);
        SchemeRegistry schReg = new SchemeRegistry();
        schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
        schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 8443));
        ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params,schReg);
        customHttpClient = new DefaultHttpClient(conMgr, params);
    }
    return customHttpClient;
}

public Object clone() throws CloneNotSupportedException {
    throw new CloneNotSupportedException();
}
}

Post unito: 11 Ottobre 2013, 09:41:25 CEST
nessuno può darmi una mano su come realizzare una comunicazione con il server in https??
« Ultima modifica: 11 Ottobre 2013, 09:41:25 CEST da filipposapo, Reason: Merged DoublePost »

Offline uglyicons

  • Utente junior
  • **
  • Post: 88
  • UglyIcons - Great Apps (perlomeno ci proviamo)
  • Respect: +3
    • Mostra profilo
    • La mia app: EML Reader FREE
  • Dispositivo Android:
    Huawei Honour
  • Play Store ID:
    UglyIcons
  • Sistema operativo:
    Win
Re:https
« Risposta #13 il: 12 Ottobre 2013, 16:38:44 CEST »
0
Scusa, ero spiaggiato a letto per problemi di schiena...  :'(

Su che macchina gira il server ? Sul tuo PC ? Hai verificato che da un'altra macchina della rete (immagino che il cell sia collegato in wifi ? oppure stai usando l'emulatore) la connessione sia accettata ? E se provi ad aprirlo con il browser Android te lo apre ?
EML Reader FREE
Apri file e allegati EML e MSG da qualsiasi fonte.
Download su Play Store!

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Re:https
« Risposta #14 il: 14 Ottobre 2013, 10:21:43 CEST »
0
Si il server gira sul mio PC e dal browser mi permette di vederlo anche se ovviamente devo accettare il certificato