본문 바로가기
  • Seizure But Okay Developer
Computer Science/Network

HTTPS 적용하기

by Sky_Developer 2023. 12. 11.

개요

  • IIS에 HTTPS 를 적용한 과정을 정리

상황

  • 폐쇄망 IP주소에 HTTPS 프로토콜을 적용해야 함
  • 도메인 없는 상태로 해야 함..
  • 로컬 PC에서 서버 PC로 접속했을 때 HTTPS 프로토콜로 통신할 수 있어야 함
  • Windows IIS 서버에 인증서 등록해야 함

결과

적용 성공

준비물

  • OpenSSL
  • 중꺽마

적용 방법

OpenSSL 파일 다운받아서 설치한다. 그리고 그외 시스템 환경 변수를 세팅하는 과정이 있는데..생략하고..

CMD 창을 관리자 권한으로 열고 아래 순서대로 OpenSSL 명령어 입력한다

openssl genrsa -des3 -out myCA.key 2048 // CA 개인키 생성

openssl req -x509 -extensions v3_ca -new -nodes -key myCA.key -sha256 -days 730 -out myCA.pem -config CA.conf // CA Root 인증서 생성

openssl x509 -outform der -in myCA.pem -out myCA.crt // CA Root 인증서를 *.crt 파일 형식으로 변경

openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout localhost.key -out localhost.pem -config 개인이작성한Config파일.conf -sha256 // 도메인 개인키 생성

openssl req -new -key localhost.key -out localhost.csr -config 개인이작성한Config파일.conf // 도메인 인증서 서명 요청 파일 생성

openssl x509 -req -in localhost.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out localhost.crt -days 730 -sha256 -extfile 개인이작성한Ext파일.ext // CA 개인키 및 Root 인증서를 혼합하여 도메인 인증서 생성

openssl verify -CAfile myCA.pem -verify_hostname localhost localhost.crt // 도메인 인증서 적합성 체크(OK 뜨면 정상)

openssl pkcs12 -export -out PFX파일이름지정.pfx -inkey localhost.key -in localhost.crt -certfile CA.cer // IIS 서버에 넣을 pfx 파일 생성

파일 중 localhost.pfx, myCA.crt 는 서버 컴퓨터로 이동시키고 클라이언트 컴퓨터에는 myCA.crt 파일을 위치시킨다.
이 후 서버 IIS에서 인증서 가져오기로 pfx 파일 사용하고, myCA.crt 인증서를 등록한다.
마찬가지로 클라이언트도 myCA.crt 파일 실행해서 인증서 등록하면 상호간에 연결이 된다.

CA.conf 파일 내용

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_ca
prompt = no
[req_distinguished_name]
C = KR
ST = 사는곳 입력
L = 사는곳 입력
O = 소속회사 이름
OU = 소속부서 이름
CN = 임의의 이름
[ v3_ca ]
basicConstraints        = critical, CA:TRUE
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid:always, issuer:always
keyUsage                = critical, cRLSign, digitalSignature, keyCertSign
subjectAltName = @alt_names
[alt_names]
DNS.1 = 임의의 이름
DNS.2 = www.임의의 이름

개인이작성한Config파일.conf

[req]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[req_distinguished_name]
C = KR
ST = 사는곳 입력
L = 사는곳 입력
O = 소속회사 이름
OU = 소속회사 이름
CN = 서버 IP
[ v3_req ]
extendedKeyUsage = serverAuth
authorityKeyIdentifier=keyid,issuer
basicConstraints=critical, CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = 서버 IP
DNS.2 = www.서버 IP
IP.1 = 서버 IP

개인이작성한Ext파일.ext

authorityKeyIdentifier=keyid,issuer
basicConstraints=critical,CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = 서버 IP
DNS.2 = www.서버 IP
IP.1 = 서버 IP

배운 것 요약

  • 공인 IP 와 사설 IP의 차이점
  • 암호화 방식
    • 공개키, 대칭키 개념
    • HTTPS 인증 과정
  • OpenSSL 사용방법

배운 내용

  • HTTPS란?
    • 개념: HTTP와 거의 동일하지만, 데이터를 주고 받는 과정에 '보안' 요소가 추가된 통신 체계
    • 추가설명:
      • HTTPS를 사용하면 서버와 클라이언트 사이의 모든 통신 내용이 암호화되어 신뢰성을 보장함.
      • HTTPS는 SSL 또는 TLS 을 통해 데이터를 암호화함
  • SSL이란?
    • 개념: 두 서버 사이에 전송되는 데이터를 암호화하여 인터넷 연결을 보호하기 위한 표준 기술
    • 적용방법: SSL 인증서 발급 후 서버에 적용
      • 공인 SSL 인증서 또는 사설 SSL 인증서 배포
        • 사설 SSL 인증서에는 여러 종류가 있지만 OpenSSL을 사용하였음
  • 인증 과정

소감

  • HTTPS 를 적용하면서 기본적인 암호화 방법에 대해서 많이 배울 수 있었다.
    IP에 직접 HTTPS가 입혀질 때는 전율이 돋았다.

출처

'Computer Science > Network' 카테고리의 다른 글

iE 4 에 인증서 적용하기  (0) 2023.12.13
DNS, GateWay, Subnet mask  (0) 2019.06.12
Socket 개념  (0) 2018.07.25

댓글