Leitfaden-Entwicklungsleitfaden

Verwendung des X509-Zertifikats in fibjs

Methode 1: Verwenden Sie ein temporäres selbstsigniertes Zertifikat

1 2 3
const CYPT = require('crypto'); const SSLX = require('ssl'); const HTTP = require("http");

1. Erstellen Sie ein Schlüsselobjekt und generieren Sie ein 2048-Bit-RSA-Schlüsselpaar

1 2
let pky = new CYPT.PKey(); pky.genRsaKey(2048);

2. Erstellen Sie ein Zertifikatsanforderungsobjekt mit dem öffentlichen Schlüssel in pky oben

1 2 3 4 5 6 7
let xrq = new CYPT.X509Req("CN=localhost,O=fibjs", pky); /** * CN=localhost 是证书的主题名称, 就是证书的使用者(一般是域名 * 可以加一些扩展内容, 比如 O=IBM,OU=IT,...(用逗号分隔)等项 */

3. Um ein Zertifikat auszustellen, verwenden Sie den privaten Schlüssel in pky

1 2 3 4 5 6 7 8
let opt = { notBefore: new Date('2019-01-01') // 证书生效时间 ,notAfter: new Date('2029-12-31') // 证书失效时间 }; let crt = xrq.sign("CN=myy.mkx", pky, opt); // CN=myy.mkx 是证书的签发者, 同样可添加扩展 // opt 参数参见 fibjs 文档

4. Verwenden Sie das temporäre Zertifikat, um den https-Dienst zu starten

1 2 3 4
var svr = new HTTP.HttpsServer(crt, pky, 443, (req)=> { req.response.write('<h1>fibjs https server</h1>'); }); svr.start();

5. Der Browser besucht https://localhost/ test, da es sich nicht um ein offizielles Zertifikat handelt, wird der Browser es nicht erkennen. Sie müssen weiterhin manuell darauf zugreifen. Klicken Sie auf das Zertifikatsymbol in der Adressleiste, um die detaillierten Informationen zu sehen die Urkunde.


Methode 2: Generieren und verwenden Sie eine selbstsignierte Zertifikatsdatei

1. Zertifikat/private Schlüsseldatei generieren

1 2 3 4 5 6 7 8 9
const fs = require('fs'); //...(同上面方式一的1、2、3步骤, 省略)... let ks = pky.exportPem(); // 导出私钥文本 let cs = crt.dump(true)[0]; // 导出证书文本, 数组(只有一项) fs.writeTextFile('d:/mycert.key', ks); // 保存私钥 fs.writeTextFile('d:/mycert.pem', cs); // 保存证书

2. Zertifikat/private Schlüsseldatei verwenden

1 2 3 4 5 6 7 8 9 10 11 12 13 14
const CYPT = require('crypto'); const SSLX = require('ssl'); const HTTP = require("http"); let pky = new CYPT.PKey(); let crt = new CYPT.X509Cert(); pky.importFile('d:/mycert.key'); // 读取key文件 crt.loadFile('d:/mycert.pem'); // 读取pem文件 var svr = new HTTP.HttpsServer(crt, pky, 443, (req)=> { req.response.write('<h1>fibjs https server</h1>'); }); svr.start();

Methode 3: Verwenden Sie ein vorhandenes Zertifikat

Die obige Methode zum Laden von Zertifikatsdateien kann auch für offizielle Zertifikate verwendet werden, wie z

  • Kostenloses Zertifikat von Alibaba Cloud angefordert (anderes Format herunterladen, einschließlich zwei Dateien xxx.pem und xxx.key).
  • Das Zertifikat, das durch die certbot-Anwendung erhalten wurde.

Zertifikate in anderen Formaten müssen möglicherweise konvertiert werden, Details finden Sie in der fibjs-Dokumentation.

👉 [ Natives Modul hinzufügen ]