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/
더 필요한 것이 있으면 잘 해주면 된다.
댓글 없음:
댓글 쓰기