Apache 서버를 호스팅하는 Amazon Elastic Compute Cloud(Amazon EC2) Ubuntu 인스턴스에 자체 서명된 SSL/TLS 인증서를 설치하려고 합니다.
해결 방법
전제 조건: 포트 80 및 443에서 인스턴스의 보안 그룹이 트래픽을 허용하는지 확인하십시오.
Apache 및 OpenSSL 웹 서버 설치
서버에 Apache 및 OpenSSL을 설치하려면 다음 명령을 실행합니다.
sudo apt-get install apache2 openssl -y
자체 서명된 인증서 생성
다음 단계를 완료하십시오.
-
SSL/TLS는 퍼블릭 키와 프라이빗 키를 모두 사용합니다. 도메인의 프라이빗 키와 CSR(인증서 서명 요청)을 만들려면 다음 명령을 실행합니다.
sudo openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/private/private.key -out /etc/ssl/private/request.csr
-
SSL/TLS 인증서를 생성하려면 다음 명령을 실행합니다.
sudo openssl x509 -in /etc/ssl/private/request.csr -out /etc/ssl/private/certificate.crt -req -signkey /etc/ssl/private/private.key -days 365
이제 Apache 웹 서버에서 키(private.key) 및 인증서(certificate.crt) 파일을 사용할 수 있습니다.
SSL/TLS를 사용하도록 Apache 구성
만든 자체 서명된 인증서를 사용하도록 Apache를 구성하려면 다음 단계를 완료하십시오.
-
다음 명령을 실행하여 기본 Apache SSL 구성 파일을 엽니다.
sudo vi /etc/apache2/sites-available/default-ssl.conf
-
다음 경로를 사용하여 SSL 인증서의 위치를 정의합니다.
SSLCertificateFile의 경우 /etc/ssl/private/certificate.crt를 사용합니다.
SSLCertificateKeyFile의 경우 /etc/ssl/private/private.key를 사용합니다.
-
파일을 저장하고 닫습니다. 그 후 다음 명령을 실행하여 가상 호스트 파일을 활성화합니다.
sudo a2ensite default-ssl.conf
-
Apache의 기본 가상 호스트 구성 파일을 열려면 다음 명령을 실행합니다.
sudo vi /etc/apache2/sites-available/000-default.conf
-
도메인 이름에 리디렉션을 추가하려면 etc/apache2/sites-available/000-default.conf 파일에 다음 줄을 추가합니다.
Redirect "/" https://Server-IP
참고: Server-IP를 서버 IP 주소로 바꾸십시오. DocumentRoot 줄 뒤에 위의 줄을 입력하는 것이 가장 좋습니다. 리디렉션은 모든 트래픽을 사이트의 SSL/TLS 버전으로 전달합니다.
-
SSL/TLS 및 헤더 모듈을 활성화하려면 다음 명령을 실행합니다.
sudo a2enmod ssl
sudo a2enmod headers
-
다음 명령을 실행하여 Apache 서비스를 다시 로드하고 수정 사항을 적용합니다.
sudo systemctl reload apache2
SSL/TLS 서버 확인
다음 단계를 완료하십시오.
- 웹 브라우저를 시작합니다.
- https://Server-IP를 엽니다.
참고: Server-IP를 서버 IP 주소로 바꾸십시오. 웹 브라우저가 경고 페이지로 리디렉션합니다. 신뢰할 수 있는 인증 기관이 인증서에 서명하지 않았기 때문에 이러한 동작이 발생할 수 있습니다.
- Proceed to Host(호스트로 진행)를 선택하여 Apache 홈 페이지를 엽니다. 브라우저 주소 표시줄에 안전하지 않음이라는 자물쇠가 표시됩니다. 이는 인증서가 검증되지 않았지만 연결을 암호화한다는 것을 나타냅니다.
Red Hat Enterprise Linux(RHEL) 또는 Community Enterprise Linux에서 SSL/TLS를 구성하는 방법에 관한 자세한 내용은 Red Hat 웹 사이트에서 HTTPS를 사용하도록 웹 서버 설정을 참조하십시오. 또는 Amazon Linux를 사용하는 경우 Amazon Linux 1(AL1), Amazon Linux 2(AL2) 또는 Amazon Linux 2023(AL2023)의 SSL/TLS 구성을 참조하십시오.