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

사전 구성 환경

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

진행 과정

  1. CSR(Certificate Signing Request) 생성
  2. 인증서 발급 신청 제출
  3. 인증서 발급 완료 (발급내역서/파일설명서 PDF 참조)
  4. 인증서 설치 적용 - 신규,갱신,재발급,도메인추가
  5. 정상 적용 완료 테스트

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 발생하므로 유의)

설치 적용 확인 및 변환

* 서버에 SSL 설정 적용 후, 서버를 재시작하여 시작시 오류 또는 경고가 있는지 콘솔/데몬 로그를 필히 확인해야 합니다. (필수 확인 사항)

SSL 설치 적용 확인 하기 체인인증서 적용 확인 방법 인증서 포맷 변환 방법 TrustLogo 적용 방법