Ubuntu에서 Apache2를 사용하여 SSL (Secure Sockets Layer)을 설정하는 방법에 대해 설명드리겠습니다. SSL을 설정하면 웹 서버와 클라이언트 간의 통신이 암호화되어 보안이 강화됩니다.
Apache2에서 SSL 설정하기 (Ubuntu 기준)
1. Apache 및 SSL 모듈 설치
먼저 Apache2와 SSL 모듈을 설치해야 합니다.
sudo apt update
sudo apt install apache2
sudo a2enmod ssl
sudo systemctl restart apache2
2. SSL 인증서 생성 및 설치
SSL 인증서를 생성하거나 구입한 후에 Apache에 설치해야 합니다. 대부분의 경우, SSL 인증서는 인증 기관 (CA, Certificate Authority)에서 구입하거나 무료로 발급받을 수 있습니다. 자체 서명된 인증서를 사용할 경우에는 아래의 과정을 따릅니다.
2-1. 자체 서명 SSL 인증서 생성
자체 서명된 SSL 인증서를 생성하는 방법은 다음과 같습니다.
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt
이 명령은 1년간 유효한 자체 서명 SSL 인증서를 생성합니다. 생성 과정 중에 몇 가지 질문에 답변해야 합니다.
2-2. SSL 인증서 설치
생성된 SSL 인증서와 키 파일을 Apache2 설정에 적용합니다.
sudo nano /etc/apache2/sites-available/default-ssl.conf
다음과 같이 설정 파일을 수정합니다.
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName your_domain.com
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
# 보안 강화를 위한 추가 옵션
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!aNULL:!MD5
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
</IfModule>
ServerName
: 사용자의 도메인 이름을 설정합니다.DocumentRoot
: 웹 페이지 파일이 저장된 디렉토리 경로를 설정합니다.SSLEngine on
: SSL 엔진을 활성화합니다.SSLCertificateFile
및SSLCertificateKeyFile
: SSL 인증서 파일의 경로를 지정합니다.
3. Apache SSL 가상 호스트 활성화
SSL 설정 파일을 활성화하고 Apache를 재시작합니다.
sudo a2ensite default-ssl.conf
sudo systemctl reload apache2
4. 방화벽 설정 (선택 사항)
SSL 포트인 443번을 방화벽에서 허용해야 합니다.
sudo ufw allow 443/tcp
sudo ufw reload
테스트와 확인
웹 브라우저에서 https://your_domain.com
또는 https://your_server_ip
를 입력하여 SSL이 올바르게 작동하는지 확인할 수 있습니다. 브라우저에서 안전한 연결이라는 메시지를 확인할 수 있어야 합니다.
이렇게 하면 Ubuntu에서 Apache2를 사용하여 SSL을 설정하는 방법에 대한 간략한 설명을 마쳤습니다.