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