• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] SSL/HTTPS Node.js/Socket.io Server

ChefDeus

New member
Hallo, vielleicht kann mir hier jemand weiterhelfen.

Ich bin vor kurzem auf https umgestiegen und seit dem schaffe ich es nicht mehr mit dem Browser auf meinen Node.js Server zuzugreifen bzw. diesen mit SSL-Zertifikat richtig zu starten.

Urprünglicher HTTP Zugriff
Code:
// nserver.js
var server = require('http').createServer(app);

// nclient.js
var socket = io('http://deusgames.de:3000');

Erst dachte ich naiver Weise ich könnt einfach ein "s" an das http hängen.
Dies ergab jedoch folgenden Fehler: ERR_SSL_VERSION_OR_CIPHER_MISMATCH

Nach weiterer Recherche habe ich herausgefunden das ich mein SSL-Zertifikat bei der Erstellung des Node.js Servers der createServer() Funktion angeben muss.
Leider weiß ich nicht wie ich es richtig mache.

Code:
// nserver.js
var options = {
  key: fs.readFileSync('../Server.pem', 'utf8'),
  cert: fs.readFileSync('../Intermediate.pem', 'utf8')
}
var server = require('https').createServer(options, app);

Server.pem ist das "Server Zertifikat", herunter geladen in meinem Strato Serverterminal
Intermediate.pem ist das "Intermediate Zertifikat", auch herunter geladen in meinem Strato Serverterminal

Leider bekomme ich immer die Fehlermeldung: 'ERR_OSSL_PEM_NO_START_LINE' angezeigt wenn ich den Server erstelle.

Komplette Fehlermeldung
Code:
/var/www/vhosts/deusgames.de/httpdocs/BashBuddys$ node gameServer/nserver.js
_tls_common.js:151
      c.context.setKey(key, passphrase);
                ^

Error: error:0909006C:PEM routines:get_name:no start line
    at Object.createSecureContext (_tls_common.js:151:17)
    at Server.setSecureContext (_tls_wrap.js:1155:27)
    at Server (_tls_wrap.js:1033:8)
    at new Server (https.js:65:14)
    at Object.createServer (https.js:89:10)
    at Object.<anonymous> (/var/www/vhosts/deusgames.de/httpdocs/BashBuddys/gameServer/nserver.js:60:31)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14) {
  library: 'PEM routines',
  function: 'get_name',
  reason: 'no start line',
  code: 'ERR_OSSL_PEM_NO_START_LINE'
}

Wenn jemand weiß woran das liegen kann wäre ich für Hilfe sehr dankbar.

Gruß
Dennis
 
Soweit ich das sehe, verwendest du die falschen Dateien. key muss der private Key des Zertifikats sein und cert das Zertifikat inklusive der Kette. Ob und wie du diese Dateien von Strato bekommst, musst du bei deren Support erfragen.
 
Danke für die Antwort und Entschuldigung für meine Unwissenheit, aber was ist eine Kette?

Also ich habe es vorher auch anders herum gehabt und den selben Fehler bekommen. Die Syntax der Dateien ist aber auch die selbe.

Kette ist mir in diesem Zusammenhang ein völlig neuer Begriff. Ist dieser so bekannt, und kann der Kundenservice etwas damit anfangen?

In meiner Strato SSL Verwaltung habe ich folgende Zertifikate:
'Server' Zertifikat
'Intermediate' Zertifikat
'CA Root' Zertifikat

Die haben aber alle die selbe Syntax:
-----BEGIN CERTIFICATE-----
SCHLÜSSEL
-----END CERTIFICATE-----

Vielen Dank für jede Hilfe....

Gruß
Dennis
 
Das Server Zertifikat besteht aus zwei Teilen: dem öffentlichen Zertifikat und dem privaten Schlüssel. Du brauchst für einen HTTPS Server beides.
 
Jetzt bin ich verwirrter als vorher, habe ich es denn dann nicht richtig gemacht? Habe ja beide Zertifikate angegeben, aber bekomme dennoch diesen Fehler🤔

Danke nochmals...
 
Zurück
Oben