JS

2013년 6월 1일 토요일

Apache HTTP Server Configuration

필요한 모듈들을 추가해야 한다. /etc/apache2/mods-enabled에서 /etc/apache2/mods-available로 심볼릭 링크를 거는 형태로 모듈을 추가한다. 설치시 기본으로 추가된 모듈 이외에 ssl, rewrite, userdir, php5 등 필요한 모듈이 있으면 잘 추가해준다.

AllowOverride의 경우 필요한 것을 잘 추가해준다.
FileInfo AuthConfig Limit

그리고 Options의 경우 Indexes가 기본으로 들어있는데 꼭 필요한 것이 아니라면 Indexes는 빼버린다. SymLinksIfOwnerMatch를 사용하여 심볼릭 링크가 아무데나 안 가도록 하는 옵션도 생각해볼 수 있다. 혹시 심볼릭 링크의 owner가 chown으로 안 바뀌어서 고민이라면 chown -h를 사용하면 된다.
Options FollowSymLinks MultiViews SymLinksIfOwnerMatch

그리고 ScriptAlias를 사용하지 않는다면 주석 처리해도 좋다.

SSL을 사용하기 위해 /etc/apache2/sites-availabe/default-ssl을 /etc/apache2/sites-enabled/에서 심볼릭 링크로 연결한다. 그리고 인증서 설정을 적절히 해준다.
SSLCertificateFile    /etc/ssl/certs/my2048.cer
SSLCertificateKeyFile /etc/ssl/private/my2048.key

SSLCertificateChainFile /etc/ssl/certs/chain.cer

SSLCACertificateFile /etc/ssl/certs/CA.cer

인증서 passphrase를 자동으로 입력하기 위해 /etc/apache2/mods-enabled/ssl.conf를 변경한다. 여기서 mypass.sh는 암호를 echo하는 스크립트이다.
SSLPassPhraseDialog  exec:/etc/ssl/private/mypass.sh

보통의 http 접속이 https로 접속되도록 rewrite condition도 설정해준다. 일부 페이지만 https를 강제하고 싶다면 rewrite를 써서 해결할 수 있다. Rewrite rule은 ? 뒤에 붙은 것을 기본적으로 무시하므로 %{QUERY_STRING}을 써야할 수도 있다. 그리고 QSA는 query string이 rewrite 이후에도 남아있게 만드는 옵션이다.
#### RewriteEngine related code
RewriteEngine on

# login pages
RewriteCond %{HTTPS} !=on
RewriteCond %{QUERY_STRING} do=login
RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L,QSA]

# internal pages
RewriteCond %{HTTPS} !=on
RewriteRule ^/my_internal/.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

혹시 모든 접속을 https로 보내는 것을 원한다면 redirect를 쓰면 된다.
ServerName www.example.com
Redirect / https://www.example.com/


더 필요한 것이 있으면 잘 해주면 된다.

댓글 없음:

댓글 쓰기