우리는 로컬에서 웹사이트를 호스팅합니다. 이를 위해 공용 IP와 해당 DNS 항목이 있습니다. 우리는 Apache 2.4 웹 서버를 사용하고 있습니다. 해당 웹사이트는 아무런 문제 없이 공개적으로 접근 가능합니다. 하지만 공인 IP를 증명해 웹사이트를 평가할 수도 있습니다.
내 웹사이트에 대한 IP 기반 공개 액세스를 방지하려면 어떻게 해야 합니까? Apache(가상 호스트) 구성을 업데이트해야 합니까, 아니면 어디서 처리해야 합니까?
Apache에서 클라이언트(IP)를 제한하는 방법을 알고 있지만 상황은 완전히 다릅니다.
업데이트: 예를 들어,https://www.contoso.com/가능해야 하지만,https://203.0.113.66/그래서는 안됩니다. 이것이 내가 원하는거야
답변1
Apache 구성에서 기본 가상 호스트를 정의해야 합니다. 그런 다음 웹 사이트를 찾으려는 DNS 이름과 함께 ServerName을 사용하여 가상 호스트를 정의합니다.
이제 호스트 헤더에 해당 이름이 있는 요청은 해당 가상 호스트에 의해 처리되고, 다른 요청(잘못된 호스트 이름이 있거나 호스트 이름이 없음)은 기본 가상 호스트(잘못된 호스트가 지정되었음을 나타내는 페이지일 수 있음)에 의해 처리됩니다. 사용) 또는 유사).
SSL(https)을 사용하는 경우 호스트 이름(이 경우 IP 주소)이 SSL 인증서의 호스트 이름과 일치하지 않기 때문에 IP 주소에 대한 요청은 어쨌든 SSL 오류를 받게 됩니다.
답변2
우분투 18.04, 아파치 2.4.29를 사용합니다.
Apache2에는 기본 vHost가 있다고 생각합니다 000-default.conf
. IP를 통해 사이트에 액세스할 수 있는 경우 이 기본 구성을 비활성화했을 수 있습니다.
해결책:
거기에 리디렉션을 편집 000-default.conf
하고 넣으세요.
nano /etc/apache2/sites-available/000-default.conf
존재하다000-default.conf
<VirtualHost *:80> Redirect / https://www.contoso.com/ </VirtualHost> <VirtualHost *:443> Redirect / https://www.contoso.com/ </VirtualHost>
필요한 경우 구성을 활성화합니다.
a2ensite 000-default.conf
Apache2를 다시 로드합니다.
systemctl reload apache2.service
도움이 되었기를 바랍니다.