자기 서명(self signed) SSL 인증서 만들기

openssl req -new -newkey rsa:2048 -days 36500 -nodes -x509 -keyout bslinux.key -out bslinux.crt

req 자기 서명 인증서 만들기
-new 새로 만들기
-newkey 키도 새로 만들기
rsa:2048 RSA 알고리즘의 길이를 2048로
-days 36500 유효 기간은 36500일 (100년?)
-nodes 개인키 파일 암호화 하지 않기
-x509 X.509 표준 형식으로 만들기
-keyout bslinux.key 개인키를 bslinux.key 로 저장
-out bslinux.crt 인증서를 bslinux.crt 로 저장

추가 옵션 하나… 인증서의 subject 설정
-subj ‘/C=KR/ST=Seoul/CN=www.example.com’

SSL 인증서

SSL 인증서 목적

인증서의 목적은 암호화와 사이트의 신뢰도 향상이다.
관련 법에 따라 의무적으로 사용해야 하는 경우가 있다. (개인 정보를 수집하는 사이트)
개인적인 블로그나 위키를 설치형으로 호스팅 하는 경우에도 사용하면 좋다.
만약 설치형에서 소프트웨어에서 SSL 인증서를 사용하지 않으면 패킷을 가로 챘을 때에 관리자의 비밀번호가 노출될 수 있다.

SSL 인증서의 두번째 목적인 사이트 신뢰도는
SSL 인증서 발급 기관이 해당 사이트가 짝퉁이 아님을 보장하는 것
만약 짝퉁인데 인증서가 먹힌 것으로 판단되게 되면 대부분의 유료 SSL 인증서는 계약 당시의 보험금으로 보상해 준다

작은 사이트를 위한 공짜 SSL

[Let’s Encrypt]
위 사이트를 통해서 무료로 SSL 인증서를 발급 받을 수 있다.
물론 무료이기 때문에 뚫렸을 때에 보상금 같은 것은 없다.
암호화가 필요한데 “Self-signed SSL 인증서”를 사용하면 대부분의 웹브라우저나 모바일 기기에서 거부 당하므로 소규모 사이트라면 간단하게 사용하기에 좋다.

Self-signed SSL 인증서

자신의 인증서에 대한 인증을 자신이 하는 경우를 말한다.
대부분의 웹브라우저에서 경고를 띄우고, 모바일 기기에서는 exception이 발생할 수도 있다.
개발용도나 백엔드끼리의 통신등에 주로 쓰인다.

생성 방법

openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout server.key -out server.crt
[/code]

  • req: 자기 서명 인증서 만들기
  • -new: 새로 만들기
  • -newkey: 키도 새로 만들기
  • rsa:2048: RSA 알고리즘 2048 길이로
  • -days 365: 유효 기간은 365일
  • -nodes: private key를 DES로 암호화 하지 않음
  • -x509: X.509 표준을 사용
  • -keyout server.key: private key를 server.key에 저장
  • -out server.crt 생성될 인증서
  • 옵션 사항) -subj ‘/C=KR/ST=Seoul/CN=www.example.com’: 한국,서울,www.example.com 도메인용

Apache2 (아파치)의 SSLCertificateChainFile 설정

SSL Chain File 만드는 방법

COMODO PositiveSSL 인증서를 방금 받았는데 이걸 기준으로 설명하면

BS의 인증서는 COMODORSADomainValidationSecureServerCA 인증서가 인증하고
COMODORSADomainValidationSecureServerCA 인증서는 COMODORSAAddTrustCA 인증서가 인증
COMODORSAAddTrustCA 인증서는 AddTrustExternalCARoot 인증서가 인증

BS의 인증서를 위한 체인 파일은 위 인증 과정에 따라

Linux 명령으로 아래처럼

cat COMODORSADomainValidationSecureServerCA.crt COMODORSAAddTrustCA.crt AddTrustExternalCARoot.crt > some.ca-bundle

Windows에서는 copy 명령으로 + 를 사용해서

copy COMODORSADomainValidationSecureServerCA.crt + COMODORSAAddTrustCA.crt + AddTrustExternalCARoot.crt some.ca-bundle

이걸 아파치 설정에 SSLCertificateChainFile (또는 Apache 1.x에서는 SSLCACertificateFile)으로 설정하고 재시작하면… 끝