Apache 서버를 호스팅하는 Amazon Elastic Compute Cloud(Amazon EC2) Ubuntu 인스턴스에 자체 서명된 SSL 인증서를 설치하려고 합니다.
해결 방법
포트 80 및 443 열기
포트 80과 443에서 인스턴스의 보안 그룹이 트래픽을 허용하는지 확인하십시오.
Apache 및 OpenSSL 웹 서버 설치
다음 명령을 실행하여 서버에 Apache 및 OpenSSL을 설치합니다.
$ sudo apt-get install apache2 openssl -y
Amazon Linux에서 SSL/TLS를 구성하는 방법에 대한 자세한 내용은 SSL/TLS 구성을 참조하십시오.
자체 서명된 인증서 생성
-
퍼블릭 키와 프라이빗 키는 SSL에서 사용됩니다. 다음 명령을 실행하여 도메인의 프라이빗 키와 CSR(인증서 서명 요청)을 생성합니다.
$ sudo openssl req -nodes -newkey rsa:2048 -keyout /etc/ssl/private/private.key -out /etc/ssl/private/request.csr
-
다음 명령을 실행하여 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 웹 서버에서 사용할 준비가 되었습니다.
SSL을 사용하도록 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
-
다음 명령을 실행하여 도메인 이름에 리디렉션을 추가합니다. 리디렉션은 모든 트래픽을 사이트의 SSL 버전으로 전달합니다.
참고: "Server-IP"는 서버의 IP 주소입니다.
Redirect "/" https://Server-IP
-
다음 명령을 실행하여 SSL 및 헤더 모듈을 켭니다.
$ sudo a2enmod ssl
$ sudo a2enmod headers
-
다음 명령을 실행하여 Apache 서비스를 다시 로드하고 수정 사항을 적용합니다.
$ sudo systemctl reload apache2
SSL 서버 검증
SSL 서버를 검증하려면 다음 단계를 따르십시오.
- 웹 브라우저를 실행하고 https://Server-IP로 이동합니다. 웹 브라우저가 경고 페이지로 리디렉션합니다. 이는 신뢰할 수 있는 인증 기관에서 인증서에 서명하지 않았기 때문에 예상된 현상입니다.
- 호스트로 진행을 선택합니다. Apache 홈 페이지가 열립니다. 브라우저 주소 표시줄에 “안전하지 않음”이라는 문구가 있는 자물쇠가 나타납니다. 이는 인증서가 검증되지 않았지만 연결을 암호화하고 있음을 나타냅니다.
Red Hat 또는 Community Enterprise Linux에서 SSL/TLS를 구성하는 방법에 관한 자세한 내용은 Red Hat 웹 사이트에서 ](https://www.redhat.com/sysadmin/webserver-use-https)HTTPS를 사용하도록 웹 서버 설정[을 참조하십시오.