Print
카테고리: [ Apache HTTP Server ]
조회수: 34933

1. 개요

 기존에 Windows 서버에서 운영중인 apache 2.2 의 ssl 인증서를 갱신하던 중 문제가 발생했다.

 평소처럼 인증서를 교체 후 apache 를 서비스에서 중지/기동 하였으나 apache 가 기동되지 않았다. 로그를 확인했으나 로그도 남아있지 않았다.

 원인파악을 위하여 로그레벨을 debug 로 바꾼뒤 cmd 창에서 명령어로 직접 올린 후 로그를 확인했더니 인증서를 load 하는 상태에서 apache 가 죽어버렸다.

 원인이 무엇일까?


2. 원인파악

 인증서를 로딩하는 중에 apache 가 죽었으니 원인은 인증서때문인 것으로 의심을 한채 openssl 명령어를 이용해 인증서를 확인했으나 인증서 자체에는 이상이 없었다.

 apache 의 버전이 달라서인지 (인증서 발급시 버전을 2.4로 기입했다고하여) 물었으나 apache 버전은 인증서와 상관이 없다고한다.

 이번 인증서와 지난 인증서의 달라진점은 "패스워드 추가" 였다.

 기존 linux 환경에서는 인증서에 패스워드가 적용되어있으면 apache 기동시 패스워드를 입력받아야만 기동이 되지만 windows 환경은 apache 기동시 패스워드를 물어보지 않기 때문에 기동이 안되는 것이었다.

 따라서 apache 설정에 인증서 패스워드 관련 설정을 몇가지를 추가해주어야한다.


3. 원인해결

3.1. pass.bat 파일 생성

 아래와같이 패스워드 파일을 생성한다. (패스워드 입력)

 @echo password

3.2. httpd-ssl.conf 파일 수정

 패스워드 파일 경로를 아래와 같은 형식으로 저장한다.

SSLPassPhraseDialog exec:C:/Apache/ssl/pass.bat     

3.3. apahce 기동

 

 위처럼 패스워드 파일을 apache 설정에 적용 후 기동시 에러가 발생하지 않고 기동도 정상적으로 완료되었다.