" Park 기술 블로그 "
# 카테고리
# 도구
[CentOS7] https 구축하기
2022-02-12 01:13:36

오늘은 https 환경 구축에 대한 내용을 정리하려 한다.

하지만 설정 전에 알아둬야할 점이 있다. https에서 사용되는 인증서에 대해서 공인 인증된 인증서를 사용해야 https://~~ 이러한 url로 접속 했을 때 안전한 컨텐츠라고 인식해서 다른 사이트처럼 잘 보여진다. 서버에서 자체적으로 인증서 발급 받아서 https로 사용할 수 있지만 이 인증서를 사용하게 되면 안전하지 않은 콘텐츠를 포함할 수 있다 머라머라 하면서 바로 페이지 랜딩이 되지 않는다.

 

이 공인 인증된 인증서를 사용하려면 COMODO, GeoTrust, VeriSign 등등 공인인증 발급 회사가 있다. 이 회사들에게 일정 금액을 지불하고 공인인증서를 발급 받아서 ssl.conf 파일에 적용해야 한다. 가격 측정은 도메인 수, 배상금 등에 따라 다르다.

(가격은 COMODO가 싼 편인 것 같다. 경제형의 경우 1년 65,000원 2년 100,000원 3년 165,000원)

 

하지만 개인 공부의 목적에 경우 https로 아예 접근이 안 되는 건 아니니까 구축해보는 경험도 나쁘지 않은 것 같다.

 


 

https 구축 순서는 아래와 같다.

  1. openssl 패키지 설치
  2. 키 생성
  3. 인증서(CSR) 만들기
  4. 키 인증서 병합
  5. SSL 모듈 설치
  6. ssl.conf 설정
  7. 웹 서버 데몬 재시작 및 포트 점검

 


 

1. openssl 패키지 설치 및 현재 폴더 위치 변경

yum -y install openssl
cd /etc/pki/tls/certs/

 

2. 키 생성

openssl genrsa -out http.key 2048
  • genrsa -> 버전
  • out -> 키 생성 옵션
  • http.key -> 생성할 키 이름
  • 2048 -> 키 bit 수

 

3. 인증서(CSR) 만들기

openssl req -new -key http.key -out http.csr

1~7번까지는 각각 국가코드(kr), 시 이름(Seoul), 시/군/구(Gangnam), 회사명( ... ), 부서명( ... ), 서비스 도메인명(www.smaprkworld.com), 이메일 주소(park97.sm@gmail.com)를 입력한다. 마지막에 나오는 A challenge passwordAn optional company name 두가지 항목은 아무 입력 값 없이 Enter 입력한다.

 

4. 키 인증서 병합

openssl x509 -req -days 365 -in http.csr -signkey http.key -out http.crt

days 365 -> SSL 유효기간 365일을 의미

 

5. SSL 모듈 설치

yum -y install mod_ssl

 

6. ssl.conf 설정

vi /etc/httpd/conf.d/ssl.conf
  • #DocumentRoot "/var/www/html" 이렇게 되어 있는 줄을 주석 해제하고 http의 web root 디렉토리 path를 입력 (대충 59번째쯤)
  • SSLCertificateFile /etc/pki/tls/certs~~ 이렇게 적혀 있는 부분의 path를 /etc/pki/tls/certs/http.crt로 입력 (대충 100번째쯤)
  • SSLCertificateKeyFile /etc/pki/tls/certs~~ 이렇게 적혀 있는 부분의 path를 /etc/pki/tls/certs/http.key로 입력 (대충 107번째쯤)

 

7. 웹 서버 데몬 재시작

systemctl restart httpd

 

추가1. firewall-cmd

firewall-cmd --list-all 명령어를 통해 443/tcp 열려 있는지 확인. 없으면 firewall-cmd --permanent -add-service=443/tcp 입력. 후 firewall-cmd --reload로 방화벽 재시작.

 

추가2. selinux

semanage port -l | grep http_port_t 명령어를 통해 selinux에서 포트 열려 있는지 확인. 없으면 semanage port -a -t http_port_t -p tcp 443 입력.

0
# 댓글 + 새 댓글 작성
# 새 댓글 작성
댓글 암호는 댓글 삭제 시 필요합니다.
# 님에게 답변 작성
대댓글 암호는 댓글 삭제 시 필요합니다.
# 님의 댓글 삭제
댓글 작성 시 입력했던 암호를 입력해주세요.
아직 댓글이 없습니다