본문 바로가기
IT

Apache : CSR 생성 및 SSL 인증서 적용

by 엘리후 2021. 6. 25.
Apache 설치방법 보기

Apache 웹서버에 SSL를 적용하기 위해 아래 두 항목이 웹서버에 설치되어 있어야 합니다.
- Openssl 암호화 라이브러리 
- Mod_ssl 모듈 

위 두 항목이 웹서버에 설치되어 있다면 개인키를 생성하고 생성된 개인키를 바탕으로 CSR 파일을 생성합니다. 
생성된 CSR 파일을 한비로에 접수하여 정식 인증서를 발급받습니다.
발급된 인증서를 웹서버에 설치하게 되면 SSL 설정을 완료하게 됩니다.

위 일련의 진행사항은 아래와 같은 절차를 따르게 됩니다. 

1. openssl 라이브러리 설치상태 확인 
2. mod_ssl 모듈 설치상태 확인 
3. 개인키 생성 
4. CSR 생성 
5. 한비로에 접수 
6. 정식 인증서 발급 
7. SSL 설정



1. Openssl 라이브러리 설치상태 확인
먼저 SSL를 설치하고자 하는 웹서버에 openssl 라이브러리 설치상태를 find 명령어를 활용하여 아래와 같이 확인합니다.
 
위와 같은 값을 보인다면 openssl 라이브러리 모듈은 rpm으로 설치된것입니다.
만약에 경로가 /usr/local 아래 있다면 모듈은 소스로 설치된 것입니다. 
rpm으로 설치된 것이라면 rpm -qa 명령어를 사용하여 openssl-devel 설치여부도 함께 점검합니다. 버전에 따라 라이브러리 버전이 아래보이는 값과 차이가 있을수 있습니다. 


Openssl 은 암호화 처리를 위한 독립 모듈로 최신버젼으로 설치하는 것을 권장합니다.


2. Mod-ssl Openssl 라이브러리 설치상태 확인
Openssl 과 마찬가지로 웹서버의 mod_ssl 설치여부를 점검합니다. 
Apache 웹서버는 두가지 방식으로 모듈설치를 지원하고 있습니다. 정적과 동적인 방식으로 정적으로 설치된 경우는 아파치의 재설치까지 요구되며 동적인 경우는 손쉽게 모듈 설치가 가능합니다. 
Apache 가 /usr/local 아래 설치된 것을 기준으로 아래와 같은 방식으로 확인합니다. 

정적으로 설치된 mod_ssl 모듈확인

동적으로 설치된 mod_ssl 모듈확인

웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다.
동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libexec 디렉토리내에 mod_ssl.so 의 존재여부를 확인합니다.

3. 개인키 생성
Openssl 명령어를 이용하여 웹서버의 RSA키( 2048비트 암호화 )를 생성합니다. ( sslhanbiro.key 는 임의로 지정된 키값입니다. 원하는 이름으로 키를 생성합니다. )
패스워드를 지정하게 됩니다. 이때 입력된 패스워드는 차후 여러차례 사용되므로 본인만이 알 수 있는 패스워드로 지정해 주시는 것이 좋습니다.

윈도우 아파치 이용하실 경우 '-des3' 구문은 제외하시기 바랍니다. 
이때 생성되는 개인키는 반드시 백업을 받아놓고 사용하는 것이 좋습니다. 
생성된 키는 아래와 같이 확인이 가능합니다. 패스워드를 확인 하는데 이때는 키생성시 입력한 패스워드를 입력합니다.
개인키 생성까지 완료되면 이제 CSR 생성을 하게됩니다.



4. 인증요청서( CSR ) 생성
*발급이 완료된 인증서는 재발급 또는 변경이 불가하므로 CSR 생성시 절대 주의 바랍니다. 

☞ CSR ( Certificate Signing Request ) 이란?


SSL 서버를 운영하는 회사의 정보를 암호화하여 인증기관으로 보내 인증서를 발급받게 하는 일종의 신청서입니다. 
CSR은 ASCII 텍스트 화일로 생성됩니다. 
CSR을 생성할 때 서버의 식별명을 입력하게 됩니다. 식별명은 각 서버를 공유하게 나타내는 이름으로 다음과 같은 정보를 포함합니다. 

Country Name ( 국가코드) [] : KR
State or Province Name ( 지역 ) [] : Seoul
Locality Name ( 시/군/구 ) [] : Seocho
Organization Name ( 회사명 ) [] : Hanbiro Inc
Organizational Unit Name ( 부서명 ) [] : Linux Team
Common Name ( 서비스도메인명 ) [] : www.hanbiro.com
Email Address [] : hanbiro@hanbiro.com

☞ CSR 항목에 대한 설명

Country Name : 이것은 두 자로 된 ISO 형식의 국가 코드입니다. 
State or Province Name : 시 이름을 입력해야 하며 약어를 사용할 수 없습니다. 
Locality Name : 이 필드는 대부분의 경우 생략이 가능하며 업체가 위치한 곳를 나타냅니다. 
Organization : 사업자 등록증에 있는 회사명과 일치되는 영문회사명을 입력하시면 됩니다. 
Organization Unit : "리눅스 관리팀", "윈도우 관리팀" 등과 같이 업체의 부서를 입력할 수 있습니다. 
Common Name : 인증받을 도메인주소를 입력하시면 됩니다.

이 정보로 웹 사이트를 식별하므로 호스트 이름을 변경할 경우 다른 디지털 ID를 요청해야 합니다. 
호스트에 연결하는 클라이언트 브라우저가 디지털 ID의 이름과 URL이 일치하는지를 확인합니다. 

☞ CSR 항목 입력시 주의사항* Common Name 에는 인증서를 설치할 사이트의 도메인의 이름을 정확하게 입력하셔야 합니다.* Common Name 에는 IP 주소, 포트번호, 경로명, http:// 나 https:// 등은 포함할 수 없습니다.* CSR 항목에는 < > ~ ! @ # $ % ^ * / \ ( ) ? 등의 특수 68 문자를 넣을 수 없습니다.* CSR 생성후 서버에 개인키 (Private Key) 가 생성됩니다. 개인키를 삭제하거나 분실할 경우 인증서를 발급받아도 설치가 불가합니다. 따라서 꼭 개인키를 백업받아 두셔야 합니다.* 정보입력과정 마지막에 나오는 A challenge password 와 An optional company name 두 항목은 입력하지 마시고 Enter 만 누르고 넘어가야 합니다. 두 정보가 입력될 경우 잘못된 CSR 생성될 수 있습니다.↘ 위 주의사항을 유의하여 아래와 같은 절차로 CSR 생성을 진행합니다.
(* 윈도우+아파치의 경우 -config "openssl.cnf 절대 경로" 입력 하시기 바랍니다.)

↘ 생성된 CSR 정보는 아래처럼 확인이 가능합니다.


5. 한비로에 접수--->6. 정식 인증서 발급생성된 CSR 을 출력하면 아래와 같은 base64 형식의 문서를 볼 수 있습니다.

이문서의 첫 줄 -----BEGIN … 부터 마지막 줄 -----END … 까지 복사하여 지정된 SSL 접수페이지에 복사하여 붙여 넣은 뒤 입력정보와 함께 전송하면 접수가 완료됩니다.


7. 인증서 설치접수한 CSR 파일이 정상적으로 생성되었다면 별다른 문제없이 인증서를 발급 받을 수 있습니다.
인증서 파일은 신청시 기록한 Email 주소를 통해 인증서를 첨부파일로 수신하게 됩니다.
① 인증서 서버에 복사
도메인.crt와 Chain 폴더를 보실 수 있습니다.
여기에서 필요한 파일은 도메인.crt 와 Chain 폴더 안에 있는 AddTrustExternalCARoot.crt, rsa-dv.chain-bundle.pem 이 두 파일 입니다.
② 웹서버 환경설정
아파치가 설치된 디렉토리로 이동하여 conf 디렉토리내의 httpd.conf 파일의 복사본을 만들어 둡니다.
웹서버 설정의 기본이 되는 파일로 만일의 경우를 대비하여 백업본을 유지하는 것이 좋습니다.
백업이 완료되면 vi 편집기를 이용하여 httpd.conf 내용중 아래사항을 설정하신 정보에 맞게끔 수정합니다.
httpd.conf 예문

1. <VirtualHost 127.0.0.1:443> 127.0.0.1 를 사용하는 장비의 아이피로 변경 
 - 443 : SSL 통신포트번호 입니다. 일반적으로 웹서버는 80 포트를 사용합니다. 
2. SSLEngine 스위치 off 를 on 으로 변경해 줍니다. 
3. SSLCertificateFile / SSLCertificateKeyFile 에는 인증서의 설치경로와 개인키 파일의 경로를 적어 줍니다. 



③ root 인증서 경로설정

SSLCACertificateFile 에는 root 인증서 위치를 알려주는 것으로 유저의 브라우저에 신뢰받는 CA리스트가 없을 경우를 위해 경로를 반드시 지정해 주어야 합니다. 


④ 웹서버 재실행

설정파일의 정상적인 수정여부를 점검하기 위한 체크 ./httpd -t 
수정된 사항의 적용을 위해 아파치 데몬정지 ./apachectl stop 
아파치 데몬 활성화 ./apachectl startssl ( 아파치 데몬 활성화는 ./apachectl start 로 가능합니다. 여기에 ssl 를 붙여줌으로서 ssl 를 사용하게 됩니다. )
초기 개인키 생성시 입력했던 패스워드를 기억하시고 계실겁니다. SSL 실행을 위해 패스워드를 물어보는데 이때 개인키 생성시 입력했던 패스워드를 입력하시면 SSL 웹데몬이 활성화 됩니다.
⑤ 웹서버 포트점검
아래와 같이 활성화된 데몬의 포트를 점검해 봅니다.

⑥ 웹서비스 동작상태 점검
인터넷 주소창에 https://사용도메인 와 입력후 해당 페이지의 정상적인 동작 여부를 점검합니다.
SSL 설정한 사이트에 대한 정상적인 서비스 상태 점검

페이지 하단을 보시면 열쇠 아이콘이 보이게 됩니다. 아이콘을 클릭하게 되면 위와 같이 인증서 정보를 확인하실수 있습니다



'IT' 카테고리의 다른 글

Oracle SQL 강좌 (뷰)  (0) 2021.06.25
네이버 웹마스터 도구에 사이트맵(Sitemap) 등록 방법  (0) 2021.06.25
EDX 설치 방법  (0) 2021.06.25
vagrant / 전체적인 정리  (0) 2021.06.25
무료 동영상 편집 프로그램 10가지  (0) 2021.06.25

댓글