본문 바로가기
공부방/서버구축

[리눅스] SSL 인증서 설치 및 갱신 방법

by 빵끗미 2022. 6. 29.
반응형

안녕하세요 빵끗미에요

 

오늘은 SSL 인증서 설치 및 갱신 방법에 대하여 알아보도록 할게요.

 

SSL 인증서란?

 

클라이언트와 서버 간의 통신을 암호화하여 모든 정보 전송을 안전하게 전송되도록 하는 인증서이다.

 

웹 서버 환경

OS : Ubuntu 14.04.6 LTS

웹 서버 구성 : apache2

 

클라이언트 환경

OS : Windows pro 10

 

 

SSL 인증서 설치 방법

 

1. SSL 인증서 발급

작성자는 한국 정보인증에서 SSL 인증서를 발급받아 테스트를 진행했다.

 

2. SSL 인증서 서버에 업로드

ftp 응용프로그램을 이용하여 웹서버에 인증서 파일을 업로드한다.

업로드 경로는 서버 관리자마다 다를 수 있고, 작성자는 아파치 경로에 파일을 업로드 진행했다.

 

3. apache2 가상 호스트 설정 방법

# vi /etc/apache2/sites-avaliable/00-default.conf host 파일을 편집한다.
<VirtualHost *:80>
    ServerAdmin ppangkkeus@kakao.com
    ServerName www.test1.com 
    DocumentRoot "/var/www/html/wp"
    Redirect permanent / https://www.test1.com
    ErrorLog "logs/www.test1.com-error_log"
    CustomLog "logs/www.test1.com-access_log" common
</VirtualHost>
작성자는 http://www.test1.com  도메인으로 들어 올 경우 ssl 인증서가 설정된  https://www.test1.com 도메인으로 접근 될 수 있도록 리다이렉트 시켜놓은 상태이다.
<virtualhost *:433>
    ServerAdmin ppangkkeus@kakao.com
    ServerName www.test1.com  
    DocumentRoot "/var/www/html/wp"
    ErrorLog "logs/www.test1.com-ssl-error_log"
    CustomLog "logs/www.test1.com-ssl-access_log" common
     SSLEngine on
     SSLCertificateFile /etc/apache2/server.cert
     SSLCertificateKeyFile /etc/apache2/server.key
     SSLCertificateChainFile /etc/apache2/Chain_RootCA_Bundle.crt
</virtualhost>
433 port로 접근 하는 경우 ssl 인증서가 활성화 된다.

 

4. SSL 인증서 패스워드 스크립트 생성

인증서 발급받을 때 패스워드가 있는 상태로 받을 경우 아파치 시작할 때 ssl 인증서 패스워드 등록이 필요하다.

매번 수동으로 패스워드를 입력하는 것보다 스크립트를 이용하여 아파치 시작할 때 자등으로 패스워드 등록할 수 있도록 스크립트 사용을 해야 한다. SSL 인증서 패스워드 스크립트 작성 방법은 아래와 같다.

# vi pass.sh pass.sh 실행 파일을 생성한다.
#!/bin/sh
echo "password"
패스워드 스크립트를 작성한다.
chmod +x pass.sh 파일에 실행 권한을 부여한다.
<virtualhost *:433>
    ServerAdmin ppangkkeus@kakao.com
    ServerName www.test1.com  
    DocumentRoot "/var/www/html/wp"
    ErrorLog "logs/www.test1.com-ssl-error_log"
    CustomLog "logs/www.test1.com-ssl-access_log" common
     SSLEngine on
     SSLCertificateFile /etc/apache2/server.cert
     SSLCertificateKeyFile /etc/apache2/server.key
     SSLCertificateChainFile /etc/apache2/Chain_RootCA_Bundle.crt
</virtualhost>

SSLPassPhraseDialog exec:/home/pass.sh

 

5. SSL 인증서 KEY파일 패스워드 없는 KEY 파일로 변환 작업 (선택사항)

명령어 설명
Openssl pkcs8 –tok8 –nocrypt –in KeyFile 이름 –out 신규이름.pem 업로드 된 KEY 파일을 Pkcs8 버전으로 변경 하면 패스워드가 없는 KEY이 되므로 아파치 재시작 시 패스워드를 요구 하지 않는다. 

 

6. 아파치 재시작

/usr/sbin/apache2ctl -t SSL 인증서를 설정 하였다면 정상적으로 설정되었는지 확인 하기 위해서 syntax 검사를 진행한다.
/usr/sbin/apache2ctl stop 아파치 중지
/usr/sbin/apache2ctl start 아파치 시작

 

7. 사이트 열기

오류 없이 정상적으로 명령어가 실행되었다면  마지막으로 설정한 도메인으로 사이트를 호출해보도록 하겠다.

http://www.test1.com 을 호출 했을 때 https://www.test1.com 으로 리다이렉트 되는지 확인 한다.
https://www.test1.com 으로 리다이렉트가 되었다면 https:// 앞에 자물쇠가 생겼는지 확인 한다.   
자물쇠 모양을 클릭 하게 되면 이 사이트는 보안 연결 (HTTPS)이 사용되었습니다. 라는 세부 정보를 확인 할 수 있다.

 

8. 클라이언트 환경에서 설정한 도메인에 접근이 안될 경우 DNS 바운딩 설정 하기

클라이언트 PC에서 C:\Windows\System32\drivers\etc에 가보면 hosts 파일이 있다.

hosts 파일을 편집하기를 누른 다음 아래와 같이 내용을 입력한다. (관리자 권한으로 실행해야지 된다)

192.168.0.1   www.test1.com

내용 입력 후 저장 한 다음 도메인 www.test1.com을  호출했을 때 때 정상적으로 사이트가 출력되는 것을 확인할 수 있다.

 

 

SSL 인증서 갱신 방법

 

1. 인증서 기간 확인 방법

현재 사용하고 있는 인증서의 기간을 확인해야 한다.

https:// 앞에 자물쇠를 클릭 하게 되면 인증서의 유효기간을 알 수 있다.

 

2. 인증서 업체에 재발급을 신청한다.

 

3. 기존 인증서가 있는 경로를 확인한다.

# vi /etc/apache2/sites-avaliable/00-default.conf 가상 호스트 설정된 내용을 확인 한다.
<virtualhost *:433>
    ServerAdmin ppangkkeus@kakao.com
    ServerName www.test1.com  
    DocumentRoot "/var/www/html/wp"
    ErrorLog "logs/www.test1.com-ssl-error_log"
    CustomLog "logs/www.test1.com-ssl-access_log" common
     SSLEngine on
     SSLCertificateFile /etc/apache2/server.cert
     SSLCertificateKeyFile /etc/apache2/server.key
     SSLCertificateChainFile /etc/apache2/Chain_RootCA_Bundle.crt
</virtualhost>
빨간색으로 표시된 부분이 인증서가 있는 경로이다.

 

4. SSL 인증서 업로드

재발급된 인증서를 기존과 동일한 경로에 업로드를 하고, 기존 인증서는 삭제하거나 파일명을 변경한다.

ftp 응용프로그램을 이용하여 SSL 인증서를 업로드 및 기존 파일명을 삭제 하거나 파일명을 변경 한다.

 

5. 아파치 재시작

설정된 부분을 적용 하기 위해서는 아파치 재시작을 해야한다.

 

6. 인증서 기간 확인

1번과 마찬가지로 https:// 앞에 자물쇠를 클릭 하게되면 인증서 유효기간이 변경되것을 확인 할 수 있다.

 

 

 

오류 내용

AH00526: Syntax error on line 47 of /etc/apache2/sites-enabled/000-default.conf:
SSLPassPhraseDialog cannot occur within <VirtualHost> section
Action '-t' failed.
The Apache error log may have more information.
SSLPassPhraseDialog는 <VirtualHost>
세션안에 들어갈 수 없다 라고 오류가 나온다.
해결 방안으로 <VirtualHost> 밖에 설정하게되면 정상적으로 스크립트 실행이 된다.

 

 

 

 

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

반응형

댓글