가이드 개발 가이드

fibjs에서 X509 인증서 사용

방법 1: 임시 자체 서명 인증서 사용

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

1. 키 객체 생성 및 2048비트 RSA 키 쌍 생성

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

2. 위의 pky에서 공개 키를 사용하여 인증서 요청 객체를 생성합니다.

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

3. 인증서를 발급하려면 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. 임시 인증서를 사용하여 https 서비스 시작

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

5. 브라우저 는 공식 인증서가 아니기 때문에 https://localhost/ 테스트를 방문 합니다. 브라우저는 이를 인식하지 못합니다. 수동으로 계속 액세스해야 합니다. 주소 표시줄의 인증서 아이콘을 클릭하여 자세한 정보를 확인하세요. 인증서.


방법 2: 자체 서명된 인증서 파일 생성 및 사용

1. 인증서/개인 키 파일 생성

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. 인증서/개인 키 파일 사용

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();

방법 3: 기존 인증서 사용

인증서 파일을 로드하는 위의 방법은 다음과 같은 공식 인증서에도 사용할 수 있습니다.

  • Alibaba Cloud에서 요청한 무료 인증서(xxx.pem 및 xxx.key 파일 두 개를 포함한 다른 형식 다운로드).
  • certbot 응용 프로그램을 통해 얻은 인증서입니다.

다른 형식의 인증서는 변환해야 할 수 있습니다. 자세한 내용은 fibjs 문서를 참조하십시오.

👉 [ 네이티브 모듈 추가 ]