[ Apache2 서버 ] https 통신을 위한 SSL 모드 활성화 방법 - Whitmem
[ Apache2 서버 ] https 통신을 위한 SSL 모드 활성화 방법
System
2023-06-18 12:34 게시 a302fe8ce9cbebdde8e6

0
0
60
이 페이지는 외부 공간에 무단 복제할 수 없으며 오직 있는 그대로 게시되며 부정확한 내용을 포함할 수 있습니다. 법률이 허용하는 한 가이드 라인에 맞춰 게시 내용을 인용하거나 출처로 표기할 수 있습니다.
This page is not to be distributed to external services; it is provided as is and may contain inaccuracies.
apache2서버를 설치하면 기본적으로 http://로 접속할 수 있습니다. 하지만 기본 프로토콜은 암호화 통신을 하지 아니하며, 로그인이나 비밀번호 송수신 등 기타 작업을 할 때 보안에 취약할 수 있습니다. 그렇기 때문에 https://을 모두 적용하는 추세입니다. Apache2에서 https를 적용하는 방법은 매우 간단합니다. 그 과정에 대해서 알아보겠습니다.
SSL 모드 활성화 방법
기본적으로 https 통신을 하기 위해서는 아파치 서버에 SSL 모드를 사용할 것이라는 명령을 해 줘야 합니다. 그 명령어는 다음과 같습니다.
$ sudo a2enmod ssl
ssl이 활성화 되면 Enabling module ssl.라는 문구를 볼 수 있습니다. 활성화 된 상태에서 apache2 서버를 재 시작해야 합니다. 재 시작하면 http 모드 뿐만 아니라 https에서도 서버가 열리게 됩니다만, 모드를 활성화하기 전에 https 에 대한 서버 구성 설정을 해 보겠습니다.
https 구성 설정
ssl 을 활성화 한다고 해서 무작정 https://로 접속할 수 있는 것은 아닙니다. https://로 접속할 때의 규칙 및 대상 디렉토리를 지정 해 주지 않았기 때문입니다. 이 대상 디렉터리에 대한 기본 설정 양식이 있는데, 그 양식은 /etc/apache2/sites-available에서 확인할 수 있습니다.
기본 ssl config 파일인 default-ssl.conf가 존재하는 것을 확인할 수 있습니다. 이 파일을 우선 똑같은 공간에 ssl-server.conf 라는 이름으로 복사하겠습니다.
참고로 이 공간의 권한 정책은 관리자 권한으로 수정해야 합니다. sudo 명령을 붙여 작업을 진행 해 주었습니다. 그리고 복사한 파일인 ssl-server.conf를 열어봅니다.
기본 설정 구성 사항이 보이는 것을 알 수 있습니다. 기본적으로 DocumentRoot는 https로 접속했을 때의 기본 서버 디렉터리를 의미하는 것으로 기본 사항과 동일합니다. 이 상황에서는 /var/www/html/에 서버가 존재하므로 그대로 내비두면 됩니다. SSL 인증서를 지정해야 하는데, 인증서를 설정하는 문구가 아래에 2개 보입니다.
SSLCertificateFile은 crt 또는 pem 파일인 즉 공개 인증서를, SSLCertificationKeyFile은 인증서 비밀키의 경로를 나타냅니다. 기본적으로 Apache2를 설치하고 ssl모드를 활성화 하기만 해도 Apache2 자체에서 인증서를 사설 인증서로 생성 해 주기 때문에 내부망에서는 설정 값을 바꿀 필요는 없습니다. 다만 외부에 사이트를 운영하고자 하는 경우, 인증서를 발급받고 받은 pem 또는 crt 파일과 key 파일, ca 파일 등을 여기 경로에 언급 해 줘야 합니다.
서버 콘피그 활성화 하기
아무쪼록, 서버 콘피그 설정을 완료했으면, 방금 생성한 ssl-server.conf에 대해 활성화를 해 줘야 합니다. 활성화 방법은 a2ensite 명령어를 사용합니다. 반대로 비활성화 하려면 a2dissite를 사용합니다. a2ensite를 사용하되 뒤에 인자값으로 활성화할 콘피그 이름만 지정해주면 됩니다. 여기서는 ssl-server.conf이므로 ssl-server만 입력합니다.
활성화가 되면 생성한 서버 콘피그가 활성화 됨과 동시에, 사이트 콘피그 정보가 /etc/apache2/sites-available 폴더가 아닌 /etc/apache2/sites-enabled에 복사 됩니다. 실제 서버 상에서 동작되는 콘피그 데이터는 sites-enabled 에 존재하며 실제 서버에 반영을 하기 위해서는 sites-enabled에서 수정하면 됩니다. sites-available는 available 전의 콘피그를 생성하는 부분으로, 예비 공간이라고 생각하면 좋을 것 같습니다.
서버 재 시작
모든 작업이 완료되었다면 아파치 서버를 재 시작합니다. 아파치 서버만을 재시작하려면, 다음과 같은 명령어를 입력합니다.
$ sudo systemctl stop apache2 $ sudo systemctl start apache2
접속 확인
그런 뒤 서버에 https:// 를 붙여서 접속 해 봅니다. 포트는 443 번 TCP 포트를 개방해야 합니다. 그리고 당연하겠지만, 사설 내부 인증서로 생성한 경우, 즉 인증서를 별도 지정하지 않은 경우 연결이 비공개로 설정되어 있지 않습니다.이라는 경고 메시지가 표시됩니다. 이는 인증서 자체가 인증할 수 없어서 발생하는 문제로 인증서를 별도로 공인 발급사로부터 구매해야 합니다. 저렴한 인증서는 년 약 2만원이면 구매가 가능하며, 요즘에는 무료 인증서 Lets-Encrypt등 도 발급받을 수 있으니 발급 방법을 참고하시기 바랍니다.
다음 게시물에서는 자가 서명 인증서를 발급받는 방법에 대해서 알아보겠습니다.
댓글 0개
댓글은 일회용 패스워드가 발급되며 사이트 이용 약관에 동의로 간주됩니다.
확인
Whitmemit 개인 일지 블로그는 개인이 운영하는 정보 공유 공간으로 사용자의 민감한 개인 정보를 직접 요구하거나 요청하지 않습니다. 기본적인 사이트 방문시 처리되는 처리 정보에 대해서는 '사이트 처리 방침'을 참고하십시오. 추가적인 기능의 제공을 위하여 쿠키 정보를 사용하고 있습니다. Whitmemit 에서 처리하는 정보는 식별 용도로 사용되며 기타 글꼴 및 폰트 라이브러리에서 쿠키 정보를 사용할 수 있습니다.
이 자료는 모두 필수 자료로 간주되며, 사이트 이용을 하거나, 탐색하는 경우 동의로 간주합니다.