posted by 은이종 2014. 7. 8. 19:22


ssl 설정시 아파치를 가동하면 비밀번호를 묻게 된다.
비밀번호 입력없이 실행되게 하기 위해서는 비밀번호를 파일로 생성후 파일을 읽어들여 구동되도록 변경한다.

# 비밀번호 파일 생성
[root@localhost home]# vi /usr/local/apache/conf/ssl/passwd.sh

#!/bin/sh
echo "비밀번호"


chmod 700 /usr/local/apache/conf/ssl/passwd.sh

위와 같이 입력후 httpd.conf 파일을 수정한다.

# httpd.conf 파일 수정 (혹은 extra/httpd-ssl.conf)
[root@localhost home]# vi /usr/local/apache/conf/httpd.conf

<IfModule mod_ssl.c>
..
..
# SSLPassPhraseDialog  builtin
SSLPassPhraseDialog  exec:/usr/local/apache/conf/ssl/passwd.sh
</ifModule>

httpd.conf 파일 내용중
SSLPassPhraseDialog builtin을 위에서 저장한 비밀번호 파일 경로로 변경한다.
SSLPassPhraseDialog exec:/usr/local/apache/conf/ssl/passwd.sh


변경 완료후.. 아파치 실행 테스트
/usr/local/apache/bin/apachect1 startssl


1. apache 비밀번호를 파일로 생성
2. apache 구동시 비밀번호를 파일에서 입력되도록 변경
3. apache 실행 확인.

최근 이슈가 되고있는 Openssl 업데이트 후에는 apache 재구동해야하는데
보통 사용하고있는 apachectl graceful로는 적용이 안되니, 필히 stop / start 로 재구동해야한다
 


SSL 인증서 멀티 패스워드 입력 방법

) 패스워드 스크립트 파일을 pass.sh 라고 설정했을시 해당 파일을 열어서 편집

vi pass.sh

  www.aaa.com:      443)          echo "aaaaa";;  

   도메인 부분       포트부분      패스워드 부분


+20170308 추가분

현재 Apache 2.2 버전 이상부터는 SNI지원으로
443 Port 1개에 2개이상의 도메인이 가능한 상황
그래서



등의 형태도 가능하니 꼭 설정할때 httpd-ssl.conf Port 확인



Copy&Paste 용

#!/bin.sh
case $1 in
 www.aaa.com:443) echo "aaaaa";;
 www.bbb.com:444) echo "bbbbb";;
esac

exit0

==================================================================================== 

#!/bin.sh
case $1 in
 www.aaa.com:443) echo "aaaaa";;
 www.bbb.com:443) echo "bbbbb";;
esac

exit0
====================================================================================


Nginx SSL 설정

nginx.conf
-------------------------------------------------------
  server {

        listen 443;
        server_name ur.domain.name;

        ssl on;
        ssl_certificate /etc/nginx/ssl/ur_domain_name.crt.cat;
        ssl_certificate_key /etc/nginx/ssl/ur_domain_name.key;

        location / {
            root /var/www/html;
        }
    }

 ---------------------------------------------------------

 참고로
Nginx 는 Apache와 다르게 SSLPassPhraseDialg 기능이 없다
비밀번호 자동입력은 불가능하고 방법은

아래처럼 인증서 비밀번호 자체를 제거해야한다.
(Private 인증서나, 상용 인증서 둘 다 가능)

cp ur_domain_name.key ur_domain_name.key.bak

openssl rsa -in  ur_domain_name.key.bak -out ur_domain_name.key

 


 

'Web/WAS > Apache' 카테고리의 다른 글

Apache socket_timeout , reply_timeout 설정  (0) 2015.12.30
Apache pagespeed 설치  (0) 2015.03.18
Apache method 설정  (0) 2014.11.25
Apache 멀티 Redirect시 주의점  (0) 2014.11.05
apache 재시작 스크립트  (0) 2013.05.24