Problème de connection à un site utilisant SSL

cs_Creon Messages postés 1 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 6 septembre 2004 - 6 sept. 2004 à 20:00
wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 - 7 sept. 2004 à 08:50
Bonjour à tous,

Voilà mon problème... Je développe une application web qui doit horodater diverses actions.
Pour horodater je passe donc par un prestataire qui m'a fourni une url et les paramètres que je dois passer dans la requete HTTP afin de récupérer une réponse HTTP cohérente
Bien sûr, la transaction se passe en SSL, ce qui pose problème d'ailleurs...

En effet après avoir récupérer un code qui fonctionne sur le site de java (excellent article technique d'ailleurs) avec un objet HttpsUrlConnection, je teste la lecture de la réponse.
Problème l'appli Java me signale cette exception:

javax.net.ssl.SSLProtocolException: java.io.IOException: java.io.IOException: Unrecognized GeneralName tag, (16)
at com.sun.net.ssl.internal.ssl.HandshakeMessage$CertificateMsg.(Unknown Source)
at com.sun.net.ssl.internal.ssl.SunJSSE_az.a(Unknown Source)
at com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at testClasses.Horodatage.main(Horodatage.java:25)
Caused by: java.security.cert.CertificateParsingException: java.io.IOException: java.io.IOException: Unrecognized GeneralName tag, (16)
at sun.security.x509.X509CertInfo.(Unknown Source)
at sun.security.x509.X509CertImpl.parse(Unknown Source)
at sun.security.x509.X509CertImpl.(Unknown Source)
at sun.security.provider.X509Factory.engineGenerateCertificate(Unknown Source)
at java.security.cert.CertificateFactory.generateCertificate(Unknown Source)
... 11 more
Caused by: java.io.IOException: java.io.IOException: Unrecognized GeneralName tag, (16)
at sun.security.x509.CertificateExtensions.parseExtension(Unknown Source)
at sun.security.x509.CertificateExtensions.init(Unknown Source)
at sun.security.x509.CertificateExtensions.(Unknown Source)
at sun.security.x509.X509CertInfo.parse(Unknown Source)
... 16 more
Caused by: java.io.IOException: Unrecognized GeneralName tag, (16)
at sun.security.x509.GeneralName.(Unknown Source)
at sun.security.x509.GeneralNames.(Unknown Source)
at sun.security.x509.DistributionPoint.(Unknown Source)
at sun.security.x509.CRLDistributionPointsExtension.(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
... 20 more

Or l'url que je passe est la bonne et en plus avec d'autres sites https ça passe correctement.

Voilà le code:
public static void main(String[] argv) throws Exception {
String sAppId = "8f2963a33a1d1ef3f7624f9c78fc8b7c";
int iAction = 0;
String sHash = "6F5EA04BF5A92507F39F08EB5108C3F18F5B57A0";
String sAlgo = "SHA1";
String sUrl = ""
/* + "?appId=" + sAppId
+ "&action=" + iAction
+ "&hash=" + sHash
+ "&algo=" + sAlgo*/;
System.out.println("Url : " + sUrl);
try {
URL url = new URL(sUrl);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
BufferedReader in = new BufferedReader(
new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}
catch (SSLProtocolException e) {
System.out.println("Exception de protocole SSL");
System.out.println(e.getCause());
e.printStackTrace();
}
catch (IOException e) {
System.out.println("Exception Entrée/Sortie");
e.printStackTrace();
}
}
}

J'ai retiré l'url désolé mais ma question est simple est-ce que ça vient du code ou du site d'en face???

Sinon si qqun a des idées je lui en serait reconnaissant.

Creon

1 réponse

wargre Messages postés 649 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 9 septembre 2004 7
7 sept. 2004 à 08:50
tu n'as pas besoin d'identification?
il ne faut pas que tu valides le certificat du serveur?
il ne faut pas que tu envoies ton certificats clients?
0
Rejoignez-nous