가이드 개발 가이드

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 / test를 방문합니다. 공식 인증서가 아니기 때문에 브라우저가이를 인식하지 못합니다. 계속해서 수동으로 액세스해야합니다. 주소 표시 줄에서 인증서 아이콘을 클릭하여 인증서의 자세한 정보를 확인합니다.


방법 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从阿里云申请的免费证书(下载other格式xxx.pem 및 xxx.key 파일 두 개를 포함한从阿里云申请的免费证书(下载other格式).
  • certbot 애플리케이션을 통해 얻은 인증서입니다.

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