¿Cual seria el directorio actual cuando executa el programa?
“.” se refiere al directorio actual, entonces es importante saber si el directorio actual es C:\Users\victor\CURSOS\JAVASCRIPT-NODE\PROYECTO-MICHAELGRAM\michaelgram u otro directorio. (Por ejemplo, si el directorio actual es C:\Users\victor\CURSOS\JAVASCRIPT-NODE\PROYECTO-MICHAELGRAM, necessita referir a los archivos como ./michaelgram/unix/private.key y ./michaelgram/unix/publico.cert, no solo ./unix/private.key y ./unix/publico.cert.)
El directorio es C:\Users\victor\CURSOS\JAVASCRIPT-NODE\PROYECTO-MICHAELGRAM\michaelgram,
michaelgram es el proyecto donde corro el server.js
He conseguido levantar el servidor (http://michaelgram.test:5050) de la siguiente manera, poniendo las llaves en la raiz del proyecto y el siguiente codigo.
Pero con https:// que es lo que necesito, no se levanta, por lo que no hice nada con las llaves,…
Bueno, pues ya no se que mas hacer…
en powershell me devuelve:
Error en la invocación del método porque [System.String] no contiene ningún método llamado 'cwd'.
En línea: 1 Carácter: 1
+ require("process").cwd()
+ ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound```
De : let port = process.env.PORT || 5050;
Probe a habilitar el pueto de la siguiente manera, pero me da error y no levanta el servidor.
https.createServer(options, app).listen(5050);```
He cambiado alguna configuracion y arranca la aplicacion con https.
Pero me pone como no segura, el certificado no funciona.
Y facebook no me deja hacer login.
[Captura](http://prntscr.com/jork59)
app.listen(port, function (err) {
if (err) return console.log(‘Hubo un error’), process.exit(1);
console.log(‘Michaelgram escuchando en el puerto 5050’);
}
No existe nada correspondiente para escuchar con HTTPS (ni en ninguna puerta aparte de 5050). Para escuchar en otra puetra, necesita código para hacerlo. Este código encima solo escucha (1) en puerta 5050, (2) sin HTTPS.
Mi colega @jsha recientemente sugerió el uso de un proxy nginx para desarrolladores de aplicaciones web con ambientes tales como Node y Java. El proxy nginx puede recebir las conexiones y hacer todo con los certificados y HTTPS, y la aplicación web puede solo escuchar en una determinada puerta en localhost, recibiendo conexiones con una directiva proxy_pass. Muchas vezes, eso parece mas fácil que configurar un certificado adentro de la aplicación, entre otras cosas porque existen muchas herriamentas para configurar certificados en nginx.
app.listen(port, function (err) {
if (err) return console.log('Hubo un error'), process.exit(1);
console.log('Michaelgram escuchando en el puerto 5050');
})
¿Qué es el nombre para lo cual se emitió el certificado? No debería ser michaelgram.test (porque no se les permite a las autoridades de certificación públicas emitir certificados para dominios en ".test").
En este caso tiene que acessar el sitio como "https://localhost/", no "https://michaelgram.test/". Es importante acessar el sitio usando el mismo nombre que aparece en el certificado.
Entonces no es un certificado de una AC pública como Let's Encrypt.
Como consigo uno de Let’s Encrypt. , yo pensaba que no soportaba Node.js
Porque accediendo con https://localhost me abre la aplicacion pero me marca como “NO SEGURA” tambien
Su amigo no podia tener conseguido un certificado para localhost que su navegador acepta sin nada mas. Pero son dos razones diferentes para no aceptarlo:
(1) Si acessa el sitio con un nombre que no aparece en el certificado, el navegador no acepta el certificado porque el otro nombre es el sujeto del certificado. (El certificado no se refiere al otro nombre.)
(2) Si acessa el sitio con el nombre localhost, el navegador nota que el certificado no fue emitido por una autoridad de certificación ya presente en la lista de ACs públicas confiables. Tendría que criar una excepción para aceptarlo.