멀티도메인 CSR(인증 신청서) 생성 및 CRT(인증서) 적용방법 멀티도메인의 경우 단일도메인과 유사한 설정으로 이루어지며 대표 도메인의 개인키와 인증서, CA root인증서 파일을 다른 도메인에도 동일하게 적용을 시키는 방식이며 인증서 파일에 멀티도메인으로 신청한 도메인 키 값이 모두 포함되어 있습니다. nextline.co.kr 을 대표 도메인으로 한 www.nextline.co.kr 2개 도메인의 CSR생성 과 CRT을 적용한 예입니다. Apache 웹서버에 SSL를 적용하기 위해 아래 항목이 설치되어 있어야 합니다. - OpenSSL 암호화 라이브러리 - Mod_ssl 모듈
( 1 ) OpenSSL 라이브러리 설치확인 OpenSSL 라이브러리가 설치되지 않은 경우 기술문서를 참고하여 설치하여 주시기 바랍니다. ① rpm 버전확인 [root@nextline ~]# rpm -qa | grep openssl rpm 버전으로 설치된 openssl의 유/무를 확인합니다.

② Source 버전확인 whereis 명령어 명령의 실행 파일, 소스, 매뉴얼 페이지가 어디 있는지 보여줍니다. [root@nextline ~]# whereis openssl rpm 버전이 설치되어 있지 않을 시 위 명령어를 통해 소스버전 설치 유/무를 확인합니다.
 ( 2 ) mod_ssl 모듈확인 [vi 에디터 사용법] 사용형식: vi [옵션] [생성할 파일명/편집할 파일명] vi 에디터는 입력모드, 명령모드, 실행모드로 구분됩니다. 입력모드: vi 편집화면에서 문자를 입력할 수 있는 모드로서 입력모드로 진입하기 위해서는 i, a, o, I, A, O, R등이 있습니다. 즉 초기 vi 편집기 모드는 명령어 모드로 진입을 하기 때문에 문자를 입력하기 전에 앞의 단축키 중 하나를 먼저 입력해야 원하는 문자를 입력할 수 있습니다. 명령모드: 커서이동/문자삭제/문자(열)교체/문자열검색 등을 할 수 있는 모드로서 입력모드에서 편집이 완료되면 Esc키를 눌러 명령모드로 진입하면 됩니다. 실행모드: 특별한 명령어를 실행하는 모드로서 명령어모드에서 ":"(콜론)를 누르면 vi 화면 하단 좌측에 vi 특수명령어를 입력할 수 있습니다. [실행모드의 일반적으로 쓰이는 특수 명령어] q : 수정 작업이 이루어지지 않은 상태에서 vi 편집기에서 빠져나옵니다. q! : 수정 작업이 이루어진 부분을 적용시키지 않고 vi 편집기를 강제로 빠져나옵니다. w : 수정된 작업을 저장합니다. wq : 수정된 작업을 저장하고 vi 편집기에서 빠져나옵니다. 초기 명령어모드-> 입력모드진입 -> 편집 -> 명령어모드 -> 실행모드 -> 종료
① phpinfo 파일생성 [root@nextline ~]#vi /usr/local/apache/htdocs/php_test.php
 ② phpinfo 코드설정
phpinfo(); ?>

③ 모듈확인 http://xxx.xxx.xxx.xxx/php_test.php
( 3 ) CSR 생성 CSR ( Certificate Signing Request ) 이란? SSL 서버를 운영하는 회사의 정보를 암호화하여 인증기관으로 보내 인증서를 발급받게 하는 일종의 신청서이며 CSR은 ASCII 텍스트 화일로 생성됩니다. ① 개인키 생성 Openssl 명령어를 이용하여 웹서버의 RSA키(1024비트 암호화)를 생성합니다. 개인키 생성시 DES/RSA 암호화 방식을 선택할 수 있으나 DES 방식으로 개인키를 생성하실 경우 아파치를 구동하면 개인키 생성시 입력한 패스워드를 묻게 되며 부팅 시 아파치 데몬이 자동으로 구동되도록 설정하신 경우 부팅 중 패스워드를 묻게 되므로 관리의 원활함을 위해 RSA 방식으로 개인키를 생성합니다. /usr/local/src 디렉토리로 이동하여 키생성 합니다. [root@nextline ~]# cd /usr/local/src openssl genrsa 1024 > 도메인.key [root@nextline src]# openssl genrsa 1024 > nextline.co.kr.key
 ② 도메인 조회 CSR 정보입력 및 인증신청서 작성시 도메인 등록업체 및 도메인 조회사이트에서 도메인을 조회하여 조회결과와 일치하게 정보를 입력하여야 합니다. http://whois.nic.or.kr
 [CSR 항목에 대한 설명] CSR 정보 입력 시 도메인 등록업체에 등록하신 정보와 동일한 정보를 입력합니다. Country Name 이것은 두 자로 된 ISO 형식의 국가 코드입니다. State or Province Name 시 이름을 입력해야 하며 약어를 사용할 수 없습니다. Locality Name 이 필드는 대부분의 경우 생략이 가능하며 업체가 위치한 곳를 나타냅니다. Organization 사업자 등록증에 있는 회사명과 일치되는 영문회사명을 입력하시면 됩니다. Organization Unit "리눅스 관리팀", "윈도우 관리팀" 등과 같이 업체의 부서를 입력할 수 있습니다. Common Name 인증받을 도메인주소를 입력하시면 됩니다. 이 정보로 웹 사이트를 식별하므로 호스트 이름을 변경할 경우 다른 디지털 ID를 요청해야 합니다. 호스트에 연결하는 클라이언트 브라우저가 디지털 ID의 이름과 URL이 일치하는지를 확인합니다. [CSR 항목 입력시 주의사항] Common Name 에는 인증서를 설치할 사이트의 도메인의 이름을 정확하게 입력하셔야 하며 IP 주소, 포트번호, 경로명, http:// 나 https:// 등은 포함할 수 없습니다. CSR 항목에는 < > ~ ! @ # $ % ^ * / \ ( ) ? 등의 특수 68 문자를 넣을 수 없습니다. CSR 생성후 서버에 개인키 (Private Key) 가 생성됩니다. 개인키를 삭제하거나 분실할 경우 인증서를 발급받아도 설치가 불가합니다. 따라서 꼭 개인키를 백업받아 두셔야 합니다. 정보입력과정 마지막에 나오는 A challenge password 와 An optional company name 두 항목은 입력하지 마시고 Enter 만 누르고 넘어가야 합니다. 두 정보가 입력될 경우 잘못된 CSR 생성될 수 있습니다. ③ CSR(인증요청서) 생성 [root@nextline src]# openssl req -new -key nextline.co.kr.key > nextline.co.kr.csr
 [CSR 정보입력 항목] Country Name (2 letter code) [AU]:KR State or Province Name (full name) [Some-State]:Seongnam Gyeonggi-do Locality Name (eg, city) []:Yatap-dong Bundang-gu Organization Name (eg, company) [Internet Widgits Pty Ltd]:nextline Organizational Unit Name (eg, section) []:Technological Support Department Common Name (eg, YOUR name) []:nextline.co.kr Email Address []:nextline@nextline.co.kr A challenge password/An optional company name 항목은 입력하지 않고 Enter만 누르고 넘어갑니다. Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

③ CSR 확인 [root@nextline src]# openssl req -noout -text -in nextline.co.kr.csr
 ( 4 ) 인증서 접수
넥스트라인에 인증서발급 요청 시 접수양식에 따라 정보 기입 후 인증서발급을 신청합니다. ① 인증서 신청 정보입력 도메인 : nextline.co.kr 상품종류 : 멀티도메인 도메인 추가 등록 : www.nextline.co.kr (멀티도메인의 경우 해당되며 추가하실 도메인을 기입합니다) 인증서 기간 : 1/2/3 년 운영환경 : Apache + Mod SSL CSR 코드입력 : CSR 추출값 입력 상호명(영문입력) : nextline 부서명(영문입력) : Technological Support Department 주소 상세주소(영문입력) : Hostway IDC 343-1 시/군(영문입력) : Yatap-dong Bundang-gu 시/도(영문입력) : Seongnam Gyeonggi-do 우편번호 : 463-828 국가 : KR 등록번호(사업자등록번호/주민등록번호 도메인 소유주) : 도메인 조회 시 나타나는 책임자 및 사업자 정보를 입력합니다. 메일주소(인증서 수령 이메일기입) : 도메인 조회 시 나타나있는 책임자 전자우편을 입력합니다. 담당자 이름 : 도메인 조회 시 나타나는 책임자 명을 입력합니다. 전화 번호 : 도메인 조회 시 나타나는 책임자 전화번호를 입력합니다. ② CSR 추출 [root@nextline src]# cat nextline.co.kr.csr
 생성된 CSR 을 출력하면 아래와 같은 base64 형식의 문서를 볼 수 있으며 이 문서의 첫 줄 -----BEGIN … 부터 마지막 줄 -----END … 까지 복사하여 인증서 신청시 CSR 코드입력란에 복사하여 붙여 넣은 뒤 입력정보와 함께 전송 후 주민등록증 사본(개인)/사업자등록증 사본(사업자)를 팩스로 보내주시면 접수가 완료됩니다.
 ( 5 ) 인증서 설치
접수한 CSR 파일이 정상적으로 생성되었다면 별다른 문제없이 인증서를 발급 받을 수 있습니다. 인증서 파일은 신청시 기록한 Email 주소를 통해 인증서를 첨부파일로 수신하게 됩니다. ① 발급인증서 첨부화일 확인 메일로 받은 인증서 파일의 압축을 해제하시면 인증서 및 CA root인증서 두개의 파일이 확인 하실 수 있습니다.
 ② ftp 계정생성 인증서를 서버로 업로드 하기 위해 FTP 계정을 생성합니다. 기존 FTP 계정을 이용하여도 무방합니다. 계정생성 [root@nextline ~]# useradd nextline 계정 패스워드설정 [root@nextline ~]# passwd nextline Changing password for user nextline. 패스워드 입력 New UNIX password: 패스워드 재입력 Retype new UNIX password: passwd: all authentication tokens updated successfully.
③ 인증서 업로드 FTP 프로그램을 이용하여 4393142.crt, 4393142.ca-bundle 파일을 업로드 합니다.
 ④ 인증서 경로로 인증파일 이동 위 파일 중 4393142.crt 파일을 SSLCertificateFile 경로로 이동합니다. SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt
 4393142.ca-bundle 파일을 SSLCACertificateFile 경로로 이동합니다. SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle
 위에서 생성한 개인키(nextline.co.kr.key)를 SSLCertificateKeyFile 경로로 이동합니다. SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key
 ⑤ 웹서버 환경설정 [root@nextline src]# vi /usr/local/apache/conf/httpd.conf
 Apache 1.x + mod_ssll 연동 설치시 기본적으로 80, 443포트의 설정부분이 추가되므로 Port 80 부분을 주석처리하여 적용되지 않도록 합니다. #Port 80 부분 주석처리
 일반 http 80 포트 접속 VirtualHost 설정 NameVirtualHost xxx.xxx.xxx.xxx:80
DocumentRoot /home/nextline/public_html ServerName nextline.co.kr
DocumentRoot /home/nextline_2/public_html ServerName www.nextline.co.kr
 SSL VirtualHost 멀티도메인 설정 모든 보안 가상 호스트들의 설정은 와 지시자 사이에 포함되어야 하며 CSR을 생성한 netxtline.co.kr 도메인의 개인키 및 인증서, CA root인증서를 www.nextline.co.kr에서도 동일하게 설정합니다. NameVirtualHost xxx.xxx.xxx.xxx:443
DocumentRoot "/home/nextline/public_html" ServerName nextline.co.kr SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle
DocumentRoot "/home/nextline/public_html" ServerName nextline.co.kr SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle
 SSL Virtual Host Context 멀티도메인 전체설정
NameVirtualHost xxx.xxx.xxx.xxx:443 아이피 및 https 프로토콜 포트443 포트를 입력합니다.
보안서버 도메인의 홈디렉토리를 입력합니다. DocumentRoot "/home/nextline/public_html" 도메인을 입력합니다. ServerName nextline.co.kr SSL 엔진을 활성화 합니다 SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 인증서의 경로와 파일명을 명시합니다. SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt 개인키 경로와 파일명을 명시합니다. SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key CA root인증서 경로와 파일명을 명시합니다. SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars
BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /usr/local/apache/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
보안서버 도메인의 홈디렉토리를 입력합니다. DocumentRoot "/home/nextline/public_html" 도메인을 입력합니다. ServerName www.nextline.co.kr SSL 엔진을 활성화 합니다 SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 인증서의 경로와 파일명을 명시하며 nextline.co.kr 도메인과 동일한 인증서를 사용합니다. SSLCertificateFile /usr/local/apache/conf/ssl.crt/4393142.crt 개인키 경로와 파일명을 명시하며 nextline.co.kr 도메인과 동일한 개인키를 사용합니다. SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/nextline.co.kr.key CA root인증서 경로와 파일명을 명시하며 nextline.co.kr 도메인과 동일한 CA root인증서를 사용합니다. SSLCACertificateFile /usr/local/apache/conf/ssl.crt/4393142.ca-bundle
SSLOptions +StdEnvVars
SSLOptions +StdEnvVars
BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /usr/local/apache/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
⑥ 웹서버 재실행 웹설정 파일의 오류가 없는지 체크를 합니다. [root@nextline ~]# /usr/local/apache/bin/apachectl configtest Syntax OK [정상] 웹설정 파일을 적용하기 위해 아파치를 재가동합니다. Apache 1.x 버전에서는 startssl을 이용하여 http, https 모두 구동되도록 합니다. [root@nextline ~]# /usr/local/apache/bin/apachectl startssl
 Apache 2.x 버전에서는 [start | restart]을 이용하여 http, https 모두 구동되도록 합니다.
 ⑦ 웹서버 포트점검 [root@nextline ~]# netstat -anp | grep httpd httpd 데몬이 80 / 443 포트로 실행됩니다.

⑧ 웹서비스 동작상태 점검 https://nextline.co.kr 페이지 하단을 보시면 열쇠 아이콘이 보이게 됩니다. 아이콘을 클릭하게 되면 위와 같이 인증서 정보를 확인하실 수 있습니다.
⑨ 인증 경로확인
 ⑩ 웹서비스 동작상태 점검 https://www.nextline.co.kr 멀티도메인의 경우 대표 도메인의 개인키, 인증서, CA root인증서를 동일 적용되므로 nextline.co.kr 도메인과 발급대상, 발급자, 유효 기간이 동일하게 표시됩니다.
⑪ 인증 경로확인 인증 경로역시 nextline.co.kr 도메인과 동일하게 표시됩니다.

|
|