HTTPS 설치 및 설정

WebServer(Cent OS 7)에 HTTPS 구성

1. HTTP Server 구성

2. 인증서 생성

3. HTTP config에 인증서 맵핑

 

인증기관(CA)에 인증서를 발급받는 것이 아닌 자가발급 인증서 생성

 

1. HTTP Server 구성

0) 관리자로 들어가기

$ su - root

1234

 

1) 패키지 설치 및 확인

# rpm -qa | grep httpd #패키지 설치 확인

# yum install -y httpd #패키지가 없다면 설치

# httpd -v

 

2) OpenSSL과 mode_ssl 설치

=> 인증서 맵핑을 위한 모듈 설치

=> 오픈소스 형태의 키 생성기 : open ssl

# rpm -qa | grep openssl #패키지 설치 확인

# yum -y install openssl-* #패키지가 없다면 설치

# httpd -l

# ls /etc/httpd/modules/mod_ssl.so #모듈 설치 확인

#yum –y install mod_ssl* #모듈이 없다면 설치

 

3) 환경 설정 확인 후 index.html(홈페이지 작성)

/etc/httpd/conf/httpd.conf => http 환경설정 파일

/war/www/html/index.html => 홈페이지 파일

 

# cd /etc/httpd/conf

# ls httpd.conf

# nano httpd.conf http # 환경설정 파일 편집

httpd.conf

 

# cd /var/www

# cd html

# pwd #현재 작업중인 디렉토리 위치확인

# nano index.html #내용작성

# cat index.html # 작성내용 확인

index.html

 

4) 방화벽 설정(iptables)

# iptables –I INPUT –m state --state NEW,ESTABLISHED -p tcp --dport 80 -j ACCEPT

=> 새롭게 들어오는 것이든, 세션이 수립되어있든 tcp 80번 포트로 들어오는 것은 전부 받아들이겠어

# service iptables save

# service iptables start

 

5) http 서비스 활성화

# service httpd start

 

6) Sysmon(windows10)에서 192.168.10.30 접속


[추가] 텍스트 주소를 쓰고 싶다면?? hosts 파일 수정!!

1) 메모장을 관리자 권한으로 실행

 

2) hosts 파일 열기

 

3) hosts 파일 수정

hosts 파일

 

4) Sysmon(windows10)에서 www.open.net 접속


2. HTTPS Server 구성(인증서 생성)

웹서버가 인증기관에 인증서를 만들어달라고 요청하면서 인증요청서와 공개키를 같이 제출함.

즉, 웹서버는 공개키와 개인키를 만들어야함.

그리고 인증 요청서 안에 웹서버의 회사정보를 넣어서 전송해야함

 

[실습에서는 개인키만 만들어서 실습 진행]

1) 개인키 생성

# cd /etc/pki/tls/certs

# open genrsa -out www.open.net key 2048  

 

2) CSR 생성(인증요청서:csr)

=> 웹서버가 하는 일

# openssl req -new -key www.open.net.key -out www.open.net.csr

=> 이 키인증요청서에 같이 넣을 것

=> 인증요청서의 확장자는 csr

=> 는 원래 공개키여야하는데 실습 때는 개인키로 진행

빨간 네모칸 입력!! 필수!! (회사에 대한 정보)

# ls www*

=> 만들어진 csr과 key를 CA에 넘겨주는 것임

=> CA에서는 인증서를 생성

 

3) 개인키와 CSR을 이용한 인증서 생성

=> 이부분은 원래 CA가 하는일, 실습 때는 전부 웹서버에서 하는 걸로

# openssl x509 -in www.open.net.csr -out www.open.net.crt -req -signkey www.open.net.key -days365

=> 인증서 양식은 x509 양식 사용, 인증요청서를 받아서 인증서를 만들고, 공개키 넣고, 1년짜리로 지정

 

4) 생성된 인증서와 http conf 맵핑

인증서 경로 확인

#cd /etc/httpd/

# cd conf.d

#nano ssl.conf # 인증서 위치 설정

=> crt는 인증서가 있는 곳, key는 key값이 있는 곳

ssl.conf 파일

 

5) 방화벽 설정(iptables)

# iptables –I INPUT –m state --state NEW,ESTABLISHED -p tcp --dport 443 -j ACCEPT

# service iptables save

# service iptables restart

 

6) http 서비스 활성화

#service httpd restart

 

7) Sysmon(windows10)에서 https://www.open.net 접속 

인증서 오류
인증서 확인

=> 웹서버에서 인증서를 만들어 클라이언트에게 주었기 때문에 클라이언트는 유효성 검사를 할 수 없음

=> 자체발급 인증서를 생성하였기 때문에 인증서 유효성 검사에서 문제가 발생

=> 자체발급 인증서를 '신뢰할 수 있는 루트기관'에 등록하면 인증서 유효성 검사를 하지 않음(3. HTTP Client 설정 실습)


3. HTTP Client 설정

1) 인증서 내보내기

≫ 인증서-자세히-파일에 복사 클릭하여 파일로 내보냅니다.

인증서 내보내기 마법사 시작

DER로 인코딩된 바이너리 X.509 클릭

바탕화면으로 내보내기(파일명:www.open.net)

 

2) 인증서 설치

인증서 오른쪽 마우스 클릭하여 인증서 설치

저장소위치 : 로컬 컴퓨터

모든 인증서를 다음 저장소에 저장 클릭 후 "신뢰할 수 있는 루트 인증 기관" 저장소 선택

 

3) 인증서 설치 확인

설정에서 인증서 검색 후 인증서 관리 클릭

신뢰할 수 있는 루트 인증 기관에 www.open.net 인증서가 설치되어 있는지 확인

https://www.open.net 접속

=> 이전과 다르게 안전하지 않음이 아니라 올바른 접속이 되어야함.

=> 근데 안되네..ㅎㅎ 왜 안될까요...


[추가] 안되는경우!!! Internet Explorer에서 실행

설정-기본 브라우저-Internet Explorer 호환성을 아래와 같이 설정

 

https://www.open.net 재접속

https://www.open.net 접속
자체발급 인증서(신뢰)