¿Cómo usar https con letsencrypt, socket.io y node.js?
(0)
Estoy tratando de hacer que https funcione con socket.io y node.js. Puedo conectarme y todo funciona si pruebo con una página http.
Obtengo este error cuando intento cargar el archivo socket.io.js.
GET https://my ip number:3000/socket.io/socket.io.js net::ERR_INSECURE_RESPONSE
Estoy vinculando así
<script src="https://my ip number:3000/socket.io/socket.io.js"></script>
Y mi archivo server.js se ve así
var fs = require(''fs'');
var https = require(''https'');
var http = require(''https'');
var express = require(''express'');
var app = express();
var options = {
key: fs.readFileSync(''C:/Users/kund-admin/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/manmade.se-key.pem''),
cert: fs.readFileSync(''C:/Users/kund-admin/AppData/Roaming/letsencrypt-win-simple/httpsacme-v01.api.letsencrypt.org/manmade.se-chain.pem'')
};
var serverPort = 3000;
var server = https.createServer(options, app);
var io = require(''socket.io'').listen(server);
var port = process.env.PORT || 3000;
server.listen(port);
console.log(''Server running *:''+port);
//routing
app.get(''/'', function(req, res) {
res.sendFile(__dirname + ''/messages.asp'');
});
Y si ejecuto server.js en el terminal del nodo obtengo "Server running: 3000" pero cuando intento cargar mi página de índice, ¿aparece el error? No tengo idea de qué estoy haciendo mal en esta etapa, ¡he probado tantas cosas que no puedo recordar lo que he intentado o no!
Así que cualquier entrada realmente apreciada, ¡gracias!
SOLUCIONADO ¡Entonces resultó que no puedes tener el número de IP en el enlace del archivo socket.io.js! Tiene que ser el dominio. Entonces tiene que ser <script src="https://somedomain.com:3000/socket.io/socket.io.js">