Beste PRGers,
Ik probeer middels Goutte in te loggen op ons Tijdsregistratie-pakket (https://pronet05.myprotime.be/pronet05.asp).
Hiervoor hebben we ooit een Client Side Certifcate ontvangen (Protime.pfx). Dit certificaat heb ik in Chrome geinstalleerd en middels een bijbehorend wachtwoord gedecrypted.
Dan wordt je doorverwezen naar de inlogpagina: https://pronet05.myprotim.../login.aspx?Customer=4087
Nu wil ik graag hetzelfde realiseren middels Goutte. Omdat Goutte (volgens mij) geen PFX-certificaten ondersteunt, heb ik de PFX omgezet naar een PEM middels het volgende commando:
Tijdens de conversie werd ook naar het wachtwoord gevraagd, dat heb ik ingevoerd en nu heb ik een Protime.pem bestand:
Ik probeer nu het certificaat mee te geven bij de request:
Echter krijg ik als response HTTP Status 403 (Forbidden)
Ik heb daarna gepoogd om het certificaat in te laden
Helaas met hetzelfde resultaat
Ik heb geprobeerd de transfers middels Wireshark te loggen, maar daar wordt ik niet veel wijzer van.
Ook wanneer ik via de browser de pagina bezoek, zie ik nergens de exchange van het certificaat. Wel zie ik een 302 op bovenstaande CERT_URL welke me doorverwijst naar de inlogpagina.
Misschien ten overvloede:
Ik draai op "fabpot/goutte": "^3.1". Vanochtend geïnstalleerd.
Het script draai ik vanaf de PHP-commandline versie PHP 5.5.28-1+deb.sury.org~precise+1 (cli) (built: Aug 16 2015 09:33:43)
Alvast bedankt
Ik probeer middels Goutte in te loggen op ons Tijdsregistratie-pakket (https://pronet05.myprotime.be/pronet05.asp).
Hiervoor hebben we ooit een Client Side Certifcate ontvangen (Protime.pfx). Dit certificaat heb ik in Chrome geinstalleerd en middels een bijbehorend wachtwoord gedecrypted.
Dan wordt je doorverwezen naar de inlogpagina: https://pronet05.myprotim.../login.aspx?Customer=4087
Nu wil ik graag hetzelfde realiseren middels Goutte. Omdat Goutte (volgens mij) geen PFX-certificaten ondersteunt, heb ik de PFX omgezet naar een PEM middels het volgende commando:
openssl pkcs12 -in Protime.pfx -out Protime.pem -nodes
Tijdens de conversie werd ook naar het wachtwoord gevraagd, dat heb ik ingevoerd en nu heb ik een Protime.pem bestand:
Bag Attributes ... Key Attributes X509v3 Key Usage: 10 -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY----- Bag Attributes ... -----BEGIN CERTIFICATE----- ...
Ik probeer nu het certificaat mee te geven bij de request:
PHP:
1
2
3
4
5
| const CERTIFICATE = 'Protime.pem'; const CERT_URL = 'https://pronet05.myprotime.be/pronet05.asp'; $client = new Client(); $crawler = $client->request('GET', CERT_URL, ['verify' => realpath(CERTIFICATE)]); |
Echter krijg ik als response HTTP Status 403 (Forbidden)
Ik heb daarna gepoogd om het certificaat in te laden
PHP:
1
| $crawler = $client->request('GET', CERT_URL, ['cert' => [realpath(CERTIFICATE), CERT_PASS]]); |
Helaas met hetzelfde resultaat

Ik heb geprobeerd de transfers middels Wireshark te loggen, maar daar wordt ik niet veel wijzer van.
Ook wanneer ik via de browser de pagina bezoek, zie ik nergens de exchange van het certificaat. Wel zie ik een 302 op bovenstaande CERT_URL welke me doorverwijst naar de inlogpagina.
Misschien ten overvloede:
Ik draai op "fabpot/goutte": "^3.1". Vanochtend geïnstalleerd.
Het script draai ik vanaf de PHP-commandline versie PHP 5.5.28-1+deb.sury.org~precise+1 (cli) (built: Aug 16 2015 09:33:43)
Alvast bedankt
If money talks then I'm a mime
If time is money then I'm out of time