Certifikater og CDC ?
Står og skal lave et program der bruger https og certifikater.Problemet er at det er lykkedes mig at lave en https forbindelse (til https://www.sun.com som test) men jeg ved ikke hvordan jeg skal få inkluderet certifikatet (er inkluderet i java så vidt jeg ved, virker fint i j2se).
Har som sagt lavet det i j2se og der gør den det automatisk, men når jeg laver det i j2me/cdc siger den at den ikke kan finde certifikatet.
Koden der virker i j2se men ikke i cdc:
HttpConnection c = null;
InputStream is = null;
try {
c = (HttpConnection)Connector.open("https://www.sun.com");
c.setRequestMethod(HttpConnection.GET);
is = c.openInputStream();
}
catch(IOException ex){System.out.println(ex);}
Giver:
javax.microedition.pki.CertificateException: Certificate was issued by an unrecognized entity
Noget andet kode:
try {
SSLSocketFactory factory =
(SSLSocketFactory)SSLSocketFactory.getDefault();
SSLSocket socket =
(SSLSocket)factory.createSocket("www.verisign.com", 443);
socket.startHandshake();
PrintWriter out = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
socket.getOutputStream())));
out.println("GET http://www.verisign.com/index.html HTTP/1.1");
out.println();
out.flush();
/*
* Make sure there were no surprises
*/
if (out.checkError())
System.out.println(
"SSLSocketClient: java.io.PrintWriter error");
/* read response */
BufferedReader in = new BufferedReader(
new InputStreamReader(
socket.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
out.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
Giver javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
Nogen forslag ?
Problemet ligger vel i at certifikatet ikke ligger på mobilen (emulatoren) ?
/Pong
