Toon posts:

client certificate https ssl curl proxy

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik zit met het volgende probleem. Ik heb een website en moet vanuit deze website een xml request sturen naar een ander domein. Dit kan niet in verband met het "same origin" principe. De browser blokkeert dergelijke ajax requests. Normaal gebruik ik dan curl in php om de request als het waren te proxy-en. Dit lukt mij nu niet omdat er een client certificaat naar dit domein mee gestuurd moet worden. Het is een https domein met certificaat. En om het probleem nog ietsjes groter te maken zijn deze certificaten per gebruiker uniek (anders kon ik hem op de server zetten en via curl meesturen).

CLIENT ----> MIJN SERVER ----> SERVER EXTERNE PARTIJ
(uniek certficaat->https) => (curl of proxy->https) => (xml soap client https)

Ik heb wel wat verstand van scripting (javascript en php) maar veel minder van servers. Ik denk dat ik bovenstaande alleen op kan lossen met een https ssl proxy. Het liefst zou ik toch curl gebruiken op mijn server zodat ik de berichten kan onderscheppen en bewerken op mijn server dan hoef ik dit niet middels javascript aan de client zijde te doen. (er moet overigens een xml bericht van de client naar de externe partij)

Ik heb geen idee of dit allemaal wel kan, en al helemaal niet hoe het moet. Ik heb mijn best gedaan om via google me in te lezen in de materie maar ik kom er zelf tot nu toe niet uit. Zijn er hier mensen die weten of bovenstaande wel mogelijk is? De client certificaat wordt uitgegeven door de server van de externe partij, is dit certificaat domein gebonden? Of is het zo dat als ik een proxy op apache aanzet (ssl https proxy) dat de browser de gebruiker vraagt welk certificaat hij/zij voor de verbinding wil gebruiken? Samengevat: Is er iemand die mij kan helpen, of mij in de juiste richting kan sturen?

  • riddles
  • Registratie: April 2000
  • Laatst online: 26-05-2025

Verwijderd

Topicstarter
Heb ik gezien maar dat werkt niet. Ook ik kan googlen. Ben meer op zoek naar mensen die ervaring hebben met de materie. Die zelf zoiets ooit gedaan hebben. Had zelfs de code waar je naar verwijst al getest, aangepast etc. Nothing happens.

[ Voor 31% gewijzigd door Verwijderd op 17-01-2009 18:03 ]


  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Volgens mij kan dit fundamenteel niet omdat de client natuurlijk nooit zijn volledige certificaat exposed.

De proxyserver kan zich dan dus ook niet als die client voordoen bij de echte server.

Je moet dus alle client certificates ook op je proxyserver hebben staan. En een geldig CA-signed certificaat voor het DNS van je proxyserver zodat de clients daar ook mee in zee gaan.

Tenzij jouw proxyserver echt op IP niveau opereert en alle pakketjes voor die server routeert natuurlijk. Dan heb je de key-exchange onder controle :)

This can no longer be ignored.


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tja feitelijk probeer je gewoon een Man In The Middle attack te doen.

Https is er zo ongeveer op gebouwd om dit tegen te gaan.

  • Dukejohn
  • Registratie: Januari 2006
  • Laatst online: 01-02 17:09

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Dat is meer een gateway. Leuk voor als je intern een paar servers hebt staan die traag zijn met ssl-verkeer, dan kan deze het overnemen.

Om de een of andere reden gok ik dat de TS het niet heeft over een interne server die hem 100% vertrouwt.

Simpel gezegd als de TS het aan de praat krijgt kan hij dit toepassen voor elke banksite. Random reader responses worden geproxyd et voila, redelijke fishing methode.

Ik zou gewoon aan de website waar je het naar toe moet sturen vragen om een challenge response pagina te maken alleen voor jouw server-ip toegankelijk, zodat je om de https heenkomt.
Als de server je vertrouwt dan komt dit wel goed.

Verwijderd

Topicstarter
Allereerst mijn dank voor jullie reacties. De ontvangende partij (partij van de externe server) zegt dat het mogelijk moet zijn. Ik zou op mijn server er voor moeten zorgen dat de browser van de client om een certificaat wordt gevraagd. Door vanuit mijn server certificaat aan de client te vragen. Deze pop-up krijg ik in IE ook als ik rechtstreeks naar de https url van de externe server surf. De gebruiker zou dan in die pop-up het certificaat kunnen selecteren dat gebruikt moet worden voor de verbinding. Dat klopt ook want dat kan ik dan ook doen. En vervolgens zou ik het gebeuren moeten door proxy-en.

Ik ben zelf ook in het bezit van een client certificaat met wachtwoord (waar IE om vraagt als ik het certificaat installeer) Ook heb ik met OpenSSL een pem (key file heet zoiets geloof ik) gemaakt. Kan het feit dat ik dit heb een klein doorbraakje betekenen? Zouden er hierdoor toch mogelijkheden zijn? Alvast mijn dank.
Pagina: 1