Node.js SSL 인증서 설치/적용 가이드

사전 구성 환경

  • TLS / SHA-2(sha256) 암호화 지원 모듈 구성/활성 확인 필수
  • MD5, RC4 등 국제 보안 기구에서 해제를 권장하는 취약한 암호화 모듈 비활성화
  • SSL 2.0, 3.0 및 TLS 1.0 1.1 프로토콜 접속 허용 해제. 최신 TLS 1.2 1.3 설정 권장

CSR(Certificate Signing Request) 생성

- 본 과정은, 인증서 신청서 작성시 CSR 자동생성 이용을 권장합니다. ".pfx / .jks / .key" 파일이 제공됩니다.
- 제공되는 ".pfx / .jks" 에는 "개인키+서버인증서+체인인증서+루트인증서" 가 모두 통합되어 있습니다.

인증서 발급 완료

- 발급 완료 후에는, 메일첨부 또는 주문상세의 압축파일(zip)에 인증서 파일이 포함되어 있습니다.
- 서버 적용에 필요한 파일들에 대해서, 발급 내역서 PDF 및 루트/체인 설명 PDF를 통해서 미리 숙지해야 합니다.
- 이후 과정 부터는, 서버에 SSL 인증서 설치/적용/확인 절차 입니다. (인터넷에 공개된 설정법과 차이 없음)

PEM 포맷 적용 예제

const https = require('https');
const fs = require('fs');
const options = {
  ca: fs.readFileSync('인증서경로/ca-chain-bundle.pem')
  key: fs.readFileSync('인증서경로/domain_xxxxx.key.pem')
  cert: fs.readFileSync('인증서경로/domain_xxxxx.crt.pem')
};
https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(8000);

* 인증서 파일 정보외 나머지는 기본값이며, 추천/고정 값이 아니므로 고객사별 설정에 따릅니다.
* 루트/체인 인증서는 상품별로 차이가 있으므로, 발급 완료시 첨부된 파일 내역에서 확인 가능합니다.

pfx 포맷 적용 예제

const https = require('https');
const fs = require('fs');
const options = {
  pfx: fs.readFileSync('인증서경로/domain_xxxxx.pfx')
  passphrase: 'pfx 패스워드 지정'
};
https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(8000);

* 인증서 파일 정보외 나머지는 기본값이며, 추천/고정 값이 아니므로 고객사별 설정에 따릅니다.
* pfx 는 CSR 자동생성 신청시 발급완료 첨부해 드립니다. (패스워드 미지정 또는 잘못된값은 Error: mac verify failure 발생하므로 유의)