인터넷 연결 없이 로컬 네트워크의 클라이언트 브라우저에서 HTTPS 사용

인터넷 연결 없이 로컬 네트워크의 클라이언트 브라우저에서 HTTPS 사용

저는 서버에서 실행되는 웹 애플리케이션을 개발 중입니다. 인터넷에 연결되지 않은 WiFi를 통해 HTTPS를 통해 서버에 연결하는 클라이언트(스마트폰 브라우저)가 있을 것입니다. 주로 1일 행사에 사용됩니다.

문제:인터넷 없이도 HTTPS를 사용할 수 있습니까?

  • 클라이언트의 신뢰 저장소에는 인증서를 추가할 수 없습니다. 다른 방식으로는 클라이언트를 구성할 수도 없습니다. 고객은 이벤트를 방문하는 무작위 사람들입니다.
  • 클라이언트는 CRL/OCSP를 확인하기 위해 인터넷에 액세스할 수 없습니다. 인터넷에 연결되어 있지 않을 수도 있습니다.

나는 아이디어가로컬 DNS 사용:

  • 나는 다음에 대한 키와 신뢰할 수 있는 SSL 인증서(LetsEncrypt)를 소유하고 있습니다.offline.mydomain.com
  • 오프라인 WiFi 네트워크에는 모든 DNS 주소를 내 애플리케이션 서버로 가리키는 DNS 서버가 있습니다.
  • SSL 인증서 신뢰 체인 의 모든 인증서와 CRL은 offline.mydomain.com애플리케이션 서버로 다운로드되며 인증서의 CDP 및 AIA에 정의된 경로에서 액세스할 수 있습니다.
  • 애플리케이션 서버가 실행 중이라고 주장함 https://offline.mydomain.com(DNS 서버가 offline.mydomain.com애플리케이션 서버를 가리킴)

전체 흐름은 다음과 같습니다.

  • 고객: GET https://offline.mydomain.com/app
  • DNS: offline.mydomain.com응용 프로그램 서버의 IP에 있습니다.
  • 내 애플리케이션 서버:여기 HTML이 있습니다
  • ...
  • 고객: GET http://crl.ca.com/crls/ca.crl
  • DNS: crl.ca.com응용 프로그램 서버의 IP에 있습니다.
  • 내 애플리케이션 서버:여기 CRL이 있습니다
  • ...
  • 고객: GET http://certificate.ca.com/certs/ca.cer
  • DNS: certificate.ca.com응용 프로그램 서버의 IP에 있습니다.
  • 내 애플리케이션 서버:여기 인증서가 있어요
  • ...

그러나 나는 네트워킹을 그다지 이해하지 못합니다. DNS 부분이 가능할까요?

  • 클라이언트를 수동으로 구성하지 않고도 클라이언트가 내 로컬 DNS를 사용하도록 할 수 있습니까?
  • 실제 인터넷에 다시 연결한 후 클라이언트는 얼마나 혼란스러울까요?
  • 스마트폰이 인터넷에 연결되지 않은 Wi-Fi에 연결됩니까?

답변1

클라이언트가 CRL 또는 OCSP 서버에 연결할 수 없다는 이유만으로 TLS 호스트에 연결하지 못할 것이라고는 생각하지 않습니다. 따라서 필요한 것은 다음과 같다고 99% 확신합니다.

  • 널리 신뢰되는 CA(예: Let's Encrypt)가 서명한 서버 인증서와 일치하는 개인 키가 로컬 웹 서버 상자에 설치됩니다.
  • 로컬 서버의 IP 주소에서 관련 호스트 이름을 가리키는 로컬 DNS 서버.
  • 클라이언트 장치에 IP 주소를 제공하고 DNS 서버를 사용하도록 지시하는 DHCP 서버.

DNS와 DHCP는 매우 가벼운 작업이므로 원하는 경우 HTTPS 서버와 동일한 상자에서 쉽게 실행할 수 있습니다.

모바일 Wi-Fi 장치에는 DHCP가 활성화되어 있을 가능성이 높으며 DHCP 서버가 사용하라고 지시하는 DNS 서버를 사용할 가능성이 높습니다. 따라서 로컬 DNS 서버에서 "8.8.8.8"/"8.8.4.4"/"1.1.1.1"을 가리키는 것에 대해 걱정할 필요가 없다고 생각합니다. 하지만 이벤트가 있기 오래 전에 오프라인 네트워크의 프로토타입을 설정하고 다양한 iOS, Android, Mac 및 Windows 장치(각각 하나 이상)에서 테스트해 보는 것이 좋습니다.

실제 인터넷에 다시 연결할 때 장치를 혼동해서는 안 됩니다.

관련 정보