Hi!
Ich wollte - in erster Linie zur Übung - einen kleinen IRC-Channel-Bot schreiben. Funktioniert alles auch prima, kann für
bestimmte User bestimmte Commands erlauben, wie zB. "!quote", woraufhin der Bot dann ein zufälliges Zitat ausspuckt.
Nur jetzt wollt ich das ganze auch mit optionalem SSL versehen, da manche Server die Clients nur über SSL connecten lassen.
Soweit hab ich das ganze mal angefangen:
Und sogleich diesen Fehler hier bekommen:
Also erstmal Google gefragt und herausgefunden:
- Die Methode ansich baut schon eine sichere Verbindung auf
- Manche IRC Server (scheinbar auch der, auf den ich meinen Bot connecten lassen will) senden zuerst eine art "Test"-Zertifikat welches man dann irgendwie speichern und "laden" muss
Heady86 hat hier auch dieses Problem:
http://www.java-forum.org/soa/107453-ssl-verbindung-jupload.html
Allerdings noch keine Antworten zu seinem Thread.
Brauche ich, um auf den SSL Port eines IRCd connecten zu können eine Art HandShake am Anfang? Wenn ja, wie genau stellt man das an? Wie speicher ich dieses "Test"-Zertifikat?
Wäre dankbar für den link zu einem guten Tutorial oder einen kurzen Beispielcode anhand dessen ich nachvollziehen kann was da gemacht wird und wie das funktioniert.
Gruß
Ich wollte - in erster Linie zur Übung - einen kleinen IRC-Channel-Bot schreiben. Funktioniert alles auch prima, kann für
bestimmte User bestimmte Commands erlauben, wie zB. "!quote", woraufhin der Bot dann ein zufälliges Zitat ausspuckt.
Nur jetzt wollt ich das ganze auch mit optionalem SSL versehen, da manche Server die Clients nur über SSL connecten lassen.
Soweit hab ich das ganze mal angefangen:
Code:
public void connectSSL(String serv, int port) {
try {
SocketFactory socketFactory = SSLSocketFactory.getDefault();
Socket socket = socketFactory.createSocket(serv, port);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String data;
while((data = br.readLine()) != null) {
System.out.println(data);
//parse data here
}
socket.close();
br.close();
} catch(IOException e) {
System.err.print(e);
}
}
Und sogleich diesen Fehler hier bekommen:
Code:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Also erstmal Google gefragt und herausgefunden:
- Die Methode ansich baut schon eine sichere Verbindung auf
- Manche IRC Server (scheinbar auch der, auf den ich meinen Bot connecten lassen will) senden zuerst eine art "Test"-Zertifikat welches man dann irgendwie speichern und "laden" muss
Heady86 hat hier auch dieses Problem:
http://www.java-forum.org/soa/107453-ssl-verbindung-jupload.html
Allerdings noch keine Antworten zu seinem Thread.
Brauche ich, um auf den SSL Port eines IRCd connecten zu können eine Art HandShake am Anfang? Wenn ja, wie genau stellt man das an? Wie speicher ich dieses "Test"-Zertifikat?
Wäre dankbar für den link zu einem guten Tutorial oder einen kurzen Beispielcode anhand dessen ich nachvollziehen kann was da gemacht wird und wie das funktioniert.
Gruß