2009. 6. 16. 10:43
개발/Linux 계열
Apache HTTS Setup
Apache web server에서 SSL(HTTPS)을 사용하기 위해서는 mod_ssl 이라는
module을 사용해야합니다.
mod_ssl은 실제로 OpenSSL을 이용해서 SSL 서비스를 제공합니다.
따라서, OpenSSL이 설치가 안된 경우 OpenSSL을 먼저 설치하고
Apache에서 mol_ssl을 설치합니다.
1. OpenSSL 설치
OpenSSL은 아래 site에서 최신 버전을 download받아서 설치하시면
됩니다. 설치하는데 별 문제 없을 거라고 봅니다.
http://www.openssl.org/
2. mod_ssl을 가진 apache 설치하기
예전 apache에서는 mod_ssl을 따로 받아서 같이 설치했는데,
httpd 2.0 이상 version에서는 mod_ssl이 포함되어있기 때문에,
SSL을 사용할 경우, 'configure'실행시 다음과 같이 추가해주면 됩니다.
아주 간단하죠..^^
> ./configure --enable-ssl --with-ssl
> make
> make install
3. SSL setting하기
SSL setting하는 것도 아주 간단한데요. 크게 두가지입니다.
ssl.conf 파일에 보호하고자 하는 위치를 지정해주고,
SSL에서 사용할 private key와 public key만 만들어주면 끝납니다.
3.1 ssl.conf setting하기
SSL 관련 setting은 ./conf/ssl.conf에서 하는데,
이 파일은 ./conf/httpd.conf에서 include합니다.
ssl.conf 안에 있는 밑에 다음과 같이 SSL인증이
필요한 부분을 선언하고, 어떻게 인증을 받을 건지 지정만 해주면 됩니다.
아주 간단하죠..^^
ex)
<Directory "/usr/local/apache2/htdocs/Frontier">
SSLRequireSSL
SSLOptions +StdEnvVars
AuthType basic
AuthName "Human Genome Frontier Protected Area"
AuthUserFile conf/protected.passwd
Require valid-user
</Directory>
apache에서 .htaccess 파일로 인증해보신 분들은
SSL들어간 것만 빼면 똑같다는 느낌을 받지요.
3.2 private, public key 만들기
key를 만드는 것도 openssl 프로그램이 알아서 해주기 때문에
간단합니다.
먼저 key의 위치는 public key의 경우 일반적으로 ./conf/server.crt에
private key의 경우 ./conf/server.key 밑에 놓습니다.
directory가 없는 경우 만들어야겠죠..^^
OpenSSL을 설치했으면, openssl 프로그램이 만들어지는데
이 프로그램을 이용해 담과 같이 만듭니다.
public key생성:
> openssl genrsa -out server.key 1024
#키를 사용할때 password를 주고 싶으면 다음과 같이
'-des3' 옵션을 추가합니다.
> openssl genrsa -des3 -out ./conf/ssl.key/server.key 1024
private key 생성:
> openssl req -new -x509 -days 365
-key ./conf/ssl.key/server.key -out ./conf/ssl.crt/server.crt
이 key들이 들어있는 위치는 ssl.conf 파일의 밑에
다음과 같이 지정되어 있답니다. 머 위치가 맘에 안들면 다른 곳으로
지정할 수 있겠죠!
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
이제 모든 setting이 다 끝났습니다.
마지막으로 apache 시작만 하면 된는데요.
./bin directory에서 다음과 같이 실행시키면 됩니다.
> ./bin/apachectl startssl
Apache web server에서 SSL(HTTPS)을 사용하기 위해서는 mod_ssl 이라는
module을 사용해야합니다.
mod_ssl은 실제로 OpenSSL을 이용해서 SSL 서비스를 제공합니다.
따라서, OpenSSL이 설치가 안된 경우 OpenSSL을 먼저 설치하고
Apache에서 mol_ssl을 설치합니다.
1. OpenSSL 설치
OpenSSL은 아래 site에서 최신 버전을 download받아서 설치하시면
됩니다. 설치하는데 별 문제 없을 거라고 봅니다.
http://www.openssl.org/
2. mod_ssl을 가진 apache 설치하기
예전 apache에서는 mod_ssl을 따로 받아서 같이 설치했는데,
httpd 2.0 이상 version에서는 mod_ssl이 포함되어있기 때문에,
SSL을 사용할 경우, 'configure'실행시 다음과 같이 추가해주면 됩니다.
아주 간단하죠..^^
> ./configure --enable-ssl --with-ssl
> make
> make install
3. SSL setting하기
SSL setting하는 것도 아주 간단한데요. 크게 두가지입니다.
ssl.conf 파일에 보호하고자 하는 위치를 지정해주고,
SSL에서 사용할 private key와 public key만 만들어주면 끝납니다.
3.1 ssl.conf setting하기
SSL 관련 setting은 ./conf/ssl.conf에서 하는데,
이 파일은 ./conf/httpd.conf에서 include합니다.
ssl.conf 안에 있는 밑에 다음과 같이 SSL인증이
필요한 부분을 선언하고, 어떻게 인증을 받을 건지 지정만 해주면 됩니다.
아주 간단하죠..^^
ex)
<Directory "/usr/local/apache2/htdocs/Frontier">
SSLRequireSSL
SSLOptions +StdEnvVars
AuthType basic
AuthName "Human Genome Frontier Protected Area"
AuthUserFile conf/protected.passwd
Require valid-user
</Directory>
apache에서 .htaccess 파일로 인증해보신 분들은
SSL들어간 것만 빼면 똑같다는 느낌을 받지요.
3.2 private, public key 만들기
key를 만드는 것도 openssl 프로그램이 알아서 해주기 때문에
간단합니다.
먼저 key의 위치는 public key의 경우 일반적으로 ./conf/server.crt에
private key의 경우 ./conf/server.key 밑에 놓습니다.
directory가 없는 경우 만들어야겠죠..^^
OpenSSL을 설치했으면, openssl 프로그램이 만들어지는데
이 프로그램을 이용해 담과 같이 만듭니다.
public key생성:
> openssl genrsa -out server.key 1024
#키를 사용할때 password를 주고 싶으면 다음과 같이
'-des3' 옵션을 추가합니다.
> openssl genrsa -des3 -out ./conf/ssl.key/server.key 1024
private key 생성:
> openssl req -new -x509 -days 365
-key ./conf/ssl.key/server.key -out ./conf/ssl.crt/server.crt
이 key들이 들어있는 위치는 ssl.conf 파일의 밑에
다음과 같이 지정되어 있답니다. 머 위치가 맘에 안들면 다른 곳으로
지정할 수 있겠죠!
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/server.key
이제 모든 setting이 다 끝났습니다.
마지막으로 apache 시작만 하면 된는데요.
./bin directory에서 다음과 같이 실행시키면 됩니다.
> ./bin/apachectl startssl