HTTPS로 시작하는 보안이 강화된 HTTP를 보신적이 있을 겁니다. 국내보다는 국외에서 활발히 사용되고 있는 실정입니다. 관련하여 자세한 이론적인 설명은 아래의 링크들로 대체합니다.
http://opentutorials.org/course/228/4894
인증서(전자서명)
인증 기관(CA)에서 발행한 전자서명을 이용하려면 금전과 도메인에 대한 제약이 있다. 무료료 하나의 도메인에 대하여 1년간의 전자서명을 발행하는 startssl이 있다.
자가서명인증(openssl 이용)을 하면 경고메세지는 뜨나 무료로 사용가능하다(기능적으로는 같으나 CA기관이 인증하질 않아 브라우저에서는 경고를 출력).
SSL 인증서 : 인증서 가격비교 및 기능
자가서명 인증서 만들기
우분투 12.04에 자동설치되어 있으나 없다면 설치
sudo apt-get install openssl
CA 인증서 생성 (CA- 서버의 개인키 생성)
자가서명이므로 자신이 인증기관임
openssl genrsa -des3 -out server.key 2048
서버 인증서 발급을 위한 요청 파일인 CSR(Certificate Sinning Request - 인증서 서명 요청)를 생성
openssl req -new -days 365 -key server.key -out server.csr
편의를 위해 개인키 암호 제거
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
자가 서명 인증서를 생성
서버 개인키와 CSR을 사용해서 인증서에 서명
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
인증서 인코딩 포멧 변경
openssl 이 생성하는 인증서의 인코딩은 발급 시 옵션을 주지 않으면 디폴트가 PEM (base64 encoding)이다. Java 등에서 사용하기 위한 DER 포맷(바이너리)으로 변경은 다음과 같이 수행한다.
openssl x509 -in ca.crt -out ca.der -outform DER
인증서 내용 보기
PEM 포맷인 경우
openssl x509 -in ca.crt -text
DER 포맷인 경우
openssl x509 -in ca.der -inform DER -text
Apache 적용
Apache의 SSL 모듈을 활성화
sudo a2enmod ssl
Apache 재시작
sudo service apache2 restart
관리의 편의를 위해 SSL 인증서 디렉토리 생성
sudo mkdir /etc/apache2/ssl
인증서 파일을 아래와 같이 이동
/etc/apache2/ssl/server.crt
/etc/apache2/ssl/server.csr
/etc/apache2/ssl/server.key
보안을 위해 디렉토리와 파일의 소유권을 조정
sudo chown -R root:root /etc/apache2/ssl
파일의 권한 변경
sudo chmod 600 /etc/apache2/ssl/*.*
디렉토리의 권한 변경
sudo chmod 700 /etc/apache2/ssl
VirtualHost(가상호스트) 설정
default-ssl 파일을 복사해서 사용할 도메인명으로 변경
sudo cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/example.com
파일수정
sudo vi /etc/apache2/sites-available/example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
사이트 활성화
sudo a2ensite example.com
Apache 재시작
sudo service apache2 restart
공유기를 사용한다면 443 포트의 포트포워딩을 확인할 것. 인증서를 만들때 입력하게 되는 FQDN 정보와 실제로 사용할 도메인정보가 다르다면 에러를 발생시킨다.
'리눅스 > Ubuntu' 카테고리의 다른 글
[Ubuntu] 우분투 php.ini 설정 (4) | 2013.08.01 |
---|---|
[Ubuntu] 우분투 PHP-APC 설치 (0) | 2013.07.31 |
[Ubuntu] 우분투 Apache(아파치) 로그관리 - rotatelogs, cronlog (0) | 2013.07.31 |
[Ubuntu] 우분투 Apache(아파치) VirtualHost 예제 - 가상호스트 (0) | 2013.07.31 |
[Ubuntu] 우분투 Apache(아파치) 이해 (4) | 2013.07.31 |