[NodeJS + Socket.IO + SSL] Verbinding komt niet tot stand.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cake Masher

Cake Masher

29/06/2014 15:05:32
Quote Anchor link
Een tijd geleden ben ik begonnen met het experimenteren met nodejs en socket.io. Tot zo ver, lukt dat allemaal prima, alleen wou ik nu graag een beveiligde socket.io verbinding open zetten tussen de socket.io server en de web client.

Ik heb een geldig certificaat tot mijn beschikking die op de server draait waar ook het domein van beveiligd is.

Nu kom ik op het probleem, dat zodra ik wil verbinden naar de server, ik de volgende foutmelding krijg in de console van google chrome:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
XMLHttpRequest cannot load https://domain.tld:12457/socket.io/1/?t=1403871407291. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://domain.tld' is therefore not allowed access.


Ik heb daarbij de header toegevoegd in de https server, op de volgende manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var https           = require ('https');
var fs              = require ('fs');
var options         = {
                    key: fs.readFileSync('./cert/private.key'),
                    cert: fs.readFileSync('./cert/certificate.crt'),    
                    //requestCert: true,
                    ca: [ fs.readFileSync('./cert/ca.pem'), fs.readFileSync('./cert/sub.class1.server.ca.pem') ]
                };

var server          = https.createServer (options, function (req, res) {
res.setHeader("Access-Control-Allow-Origin", "https://domain.tld");
res.writeHead (200);
res.end ("Nothing to see here :o");
});

var socketio            = require ('socket.io').listen (server);

server.listen (12457);


Als ik de server start, en via socket.io probeer te verbinden krijg ik dus die foutmelding. Maar als ik de headers op haal van de HTTPS server, dan krijg ik het volgende;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
HTTP/1.1 200 OK =>
Access-Control-Allow-Origin => https://domain.tld
Date => Fri, 27 Jun 2014 12:18:45 GMT
Connection => close

Waarbij de headers wel gewoon zijn door gevoerd.

Kan iemand me uitleggen wat het probleem is, of me veder helpen?

Alvast bedankt!
 
PHP hulp

PHP hulp

17/11/2024 23:26:02
 
LEDfan nvt

LEDfan nvt

29/06/2014 16:29:52
Quote Anchor link
Ik denk - maar ben niet zeker -, dat de statische HTML pagina waarop je de socket.io connectie probeert op te zetten via HTTP gebeurt. Dan is er een conflict tussen beide domeinen en moet je oftewel de HTML pagina én de socket.io connectie via HTTPS doen of je moet de header omzetten naar het http:// domein.
Dit is wat ik denk met mijn weinige ervaring hierin.
 
Cake Masher

Cake Masher

29/06/2014 21:47:52
Quote Anchor link
Bedankt voor je reactie.

Ik had hier ook over na gedacht, en ben er zeker van dat ook de statische HTML pagina op de HTTPS verbinding draait, en op het zelfde domein draait (geen subdomein of iets dergelijks).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.