Apache2 웹 서버는 가장 인기 있는 웹 서버 중 하나입니다. SSL 인증서를 설치하고 HTTPS로 서비스하도록 구성해 볼께요.
1. Apache2 설치
우선 Ububtu 22.04에서 Apache2를 먼저 설치하고 서비스를 시작합니다.
sudo apt update && apt upgrade -y
sudo apt install apache2
sudo systemctl enable apache2
sudo systemctl status apache2
2. SSL 모듈 활성화
HTTPS를 사용하려면 SSL 모듈을 활성화해야 합니다. Ubuntu/Debian에서는 a2enmod 명령어를 사용하여 Apache 모듈을 활성화할 수 있습니다. SSL 모듈을 활성화하려면 다음 명령어를 입력합니다.
sudo a2enmod ssl
# Apache의 SSL 모듈을 활성화한 후, Apache 서버를 재시작해야 변경 사항이 적용됩니다.
sudo systemctl restart apache2
3. 인증서 생성
자체 서명 인증서를 만들겠습니다.
sudo openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout apache2.key -out apache2.crt -days 3650
apache2.crt와 apache2.key를 /etc/apache2/certs에 위치해 둡니다.
4. SSL 구성
Apache2에서 HTTPS의 활성화에 대한 SSL 설정을 구성합니다. Apache에서 SSL 설정 파일인 /etc/apache2/sites-available/ 000-default.conf를 열어 다음을 추가합니다.
# http를 리다이렉트 해주지 않으면 http, https 모두 접속됨
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
</VirtualHost>
<VirtualHost *:443>
#다음을 추가
SSLEngine on
SSLCertificateFile /etc/apache2/certs/apache2.crt
SSLCertificateKeyFile /etc/apache2/certs/apache2.key
</VirtualHost>
- <VirtualHost *:80> </VirtualHost>
포트 80에서 들어오는 모든 트래픽에 대해 가상 호스트를 정의합니다. - RewriteEngine On
들어오는 요청에 대해 URL 재작성 작업을 수행하게 합니다. RewriteRule 또는 RewriteCond가 작동하려면 rewrite 엔진이 활성화되어야 합니다. - RewriteCond %{HTTPS} off
현재 연결이 HTTPS를 사용하지 않는지 확인합니다. (현재 연결이 https를 사용하지 않는다면) - RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
(.*) - 이 정규 표현식으로 전체 URL를 매칭합니다.
https://%{SERVER_NAME}/$1 - 리디렉션할 새로운 URL입니다.
[R=301,L] - R=301 플래그는 브라우저와 검색 엔진에게 리소스가 HTTPS로 영구 이동했음을 알리는 것이고, L 플래그는 이 규칙이 일치하면 다른 rewrite 규칙이 처리되지 않도록 보장합니다.
서비스를 재시작합니다. https 로 접속 가능하며, http로 접속하면 https로 리다이렉트 됩니다.
'OS > 리눅스' 카테고리의 다른 글
| crontab (0) | 2025.02.24 |
|---|---|
| timeserver (0) | 2025.01.10 |
| USER ID 및 GROUP ID 변경하는 방법 (0) | 2024.09.24 |
| [Rocky] sudo-enabled 사용자 생성하기 (0) | 2024.09.15 |