So konfigurieren Sie SSL für den Koa2-Dienst

So konfigurieren Sie SSL für den Koa2-Dienst

I. Einleitung

1: SSL-Zertifikat

Mein Domänenname befindet sich in der Tencent Cloud. Jedes Mal, wenn ich einen Domänennamen der dritten Ebene erstelle (vorausgesetzt, es ist aaa.jiangw1.com), erhalte ich ein einjähriges SSL. Nach erfolgreicher Beantragung kann ich das SSL-Zertifikat wie folgt herunterladen:

Sie können sehen, dass verschiedene Serverdateien vorbereitet sind. Die gemeinsame SSL-Datei im roten Kreis kann für den Knotendienst verwendet werden.

2: Analyse

aaa.jiangw1.com: Geben Sie A für den Datensatztyp und die öffentliche IP des Servers für den Datensatzwert ein.

Zwei: Code

Der folgende Code ist auf das koa2-Projekt beschränkt, andere Node-Projekte sind ähnlich.

1: Abhängigkeiten installieren

npm installiere koa-sslify
npm installiere koa2-cors

2: app.js hinzugefügt

const app = new Koa();
const cors = erfordern('koa2-cors');
const sslify = erfordern('koa-sslify').default;

// SSL verwenden
app.verwenden(sslify());

// Domänenübergreifende Einstellungen app.use(cors({
  Herkunft: Funktion (ctx) {
    gibt ctx.header.origin zurück;
  }
}))

3: Änderung des Bin-Ordners

Erstellen Sie einen neuen SSL-Ordner und fügen Sie die .key- und .pem-Dateien in das SSL-Zertifikat ein.

Ändern Sie bin/www wie folgt:

var https = erforderlich("https");
var fs = erfordern("fs");
var Pfad = erforderlich("Pfad");
/**
 * HTTP-Server erstellen.
 */
// SSL-Optionen
var Optionen = {
  Schlüssel: fs.readFileSync(Pfad.join(__dirname, './ssl/aaa.jiangw1.com.key')),
  Zertifikat: fs.readFileSync(Pfad.join(__dirname, './ssl/aaa.jiangw1.com.pem'))
};
// var server = http.createServer(app.callback());
var httpsServer = https.createServer(Optionen, App.Callback());
httpsServer.listen(port, (err) => {
  wenn (Fehler) {
    console.log('Server-Init-Fehler', err);
  } anders {
    console.log('Server läuft an Port:' + Port);
  }
});
httpsServer.on('Fehler', beiFehler);
httpsServer.on('listening', onListening);
/**
 * Ereignis-Listener für „Abhör“-Ereignisse des HTTP-Servers.
 */
Funktion beimZuhören() {
  // var addr = server.adresse();
  var addr = httpsServer.address();
  var bind = typeof Adresse === 'Zeichenfolge'
    ? 'Pipe ' + Adresse
    : 'Port ' + Adresse.Port;
  debug('Abhören auf ' + bind);
}

4: Starten

Lokaler Start:
Öffnen Sie den Browser und gehen Sie zu https://localhost:3010. Wenn Sie sich anmelden können, bedeutet dies, dass die lokale Konfiguration erfolgreich war. Sie sollten darauf hingewiesen werden, dass der Domänenname ungültig ist.
Serverstart:
Starten Sie nach dem Hochladen des Quellcodes den Dienst mit pm2 und greifen Sie mit Ihrem Browser auf aaa.jiangw1.com zu. Wenn Sie darauf zugreifen können, bedeutet dies, dass die lokale Konfiguration erfolgreich war.

Drei: Notizen

  • Der Linux-Server muss Port 443 öffnen
  • Die SSL-Zertifikatsdatei muss genau konfiguriert sein
  • Der Port des Knotendienstes muss freigegeben werden
  • Die Domänennamenauflösung muss genau ausgefüllt werden

Dies ist das Ende dieses Artikels zum Konfigurieren von SSL für den koa2-Dienst. Weitere Informationen zum Konfigurieren von SSL für den koa2-Dienst finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der Axios-Carrying-Cookie-Konfiguration (Axios+Koa)
  • Detaillierte Erläuterung des Konfigurationshandbuchs für Vue SSR (Vue2 + Koa2 + Webpack4)
  • Detaillierte Erläuterung der pm2-Konfiguration basierend auf Vue + Koa
  • Detaillierte Erläuterung der Kommunikation zwischen Client (Vue-Framework) und Server (Koa-Framework) sowie der domänenübergreifenden Serverkonfiguration

<<:  Erfahrungsaustausch zur Optimierung von MySQL-Big-Data-Abfragen (empfohlen)

>>:  So verwenden Sie Spark und Scala zum Analysieren von Apache-Zugriffsprotokollen

Artikel empfehlen

Zwei Möglichkeiten, die CSS-Priorität zu verstehen

Methode 1: Werte hinzufügen Gehen wir zu MDN, um ...

Reines js, um einen Schreibmaschineneffekt zu erzielen

In diesem Artikelbeispiel wird der spezifische Co...

Vue implementiert Multi-Tab-Komponente

Um die Wirkung direkt zu sehen, wurde ein Rechtsk...

Ausführliche Erläuterung der Auswirkungen von NULL auf Indizes in MySQL

Vorwort Ich habe viele Blogs gelesen und von viel...

Schritte zur Methode „Mysql-Abfragedatenbankkapazität“

Abfrage der Gesamtgröße aller Datenbanken So geht...

Der Unterschied zwischen HTML, XHTML und XML

Entwicklungstrends: html (Hypertext-Markup-Sprache...

Detaillierte Installationshistorie von Ubuntu 20.04 LTS

In diesem Artikel wird die Erstellung einer USB-S...

MySQL verwendet frm-Dateien und ibd-Dateien, um Tabellendaten wiederherzustellen

Inhaltsverzeichnis Einführung in FRM-Dateien und ...

So verwenden Sie MQTT im Uniapp-Projekt

Inhaltsverzeichnis 1. Referenz-Plugins im Uniapp ...

Führen Sie die Schritte zum Erstellen eines Squid-Proxyservers unter Linux aus.

Vorwort Dieser Artikel stellt hauptsächlich die r...

Zusammenfassung der MySql-Import- und Exportmethoden mit mysqldump

Datenbankdaten exportieren: Öffnen Sie zuerst cmd...

React führt antd-mobile+postcss ein, um ein mobiles Terminal zu erstellen

Installieren Sie antd-mobile Globaler Import npm ...