[NodeJS + Socket.IO + SSL] Verbinding komt niet tot stand.
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)
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);
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)
1
2
3
4
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
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!
Dit is wat ik denk met mijn weinige ervaring hierin.
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).