Google의 문제를 설명하려고합니다.https에서 로컬 http 서버로 요청 보내기
우리는 하드 드라이브 또는 인쇄 문서에 직접 데이터 (문서, ...)를 저장하기위한 나머지 서버를 제공하는 작은 도구 (Java 1.8 및 Jetty + Jersey)를 코딩하고 있습니다.
로컬 컴퓨터 (로컬 호스트) 또는 로컬 네트워크의 다른 장치에서 도구를 시작/액세스 할 수 있습니다.
문제는 SSL로 암호화되지 않은 https 페이지에서 로컬 도구로 요청을 보낼 수 없다는 것입니다.
우리 도구에 대한 SSL 인증서가 필요합니다.
하지만 문제는 우리가 고객이 도구를 실행하려는 장치/ip 주소에 대해 알 수 없으며 도메인을 SSL 인증서에 바인딩해야한다는 것입니다.
우리는 ssl-certificate를 만들고이를 (예 : tool.domain.com과) 바인딩 할 수 있지만이 도구는 127.0.0.1 및 192.168.10.2 또는 유사 항목에서 실행할 수 있습니다.
제 궁금한 점은 (프로그래밍 방식으로)이 벽을 우회하는 방법이 있습니까?
하나의 "방법"은 로컬 호스트 파일에 항목을 추가하는 것이지만 우리는 고객을 위해 가능한 한 적은 노력을하고 루트가 아닌 모바일 장치에는 호스트 항목을 설정할 수 없습니다.
편집 : 일부 코드 스 니펫이 추가되었습니다.
ServletContextHandler context = new ServletContextHandler(server, "/*");
// vhosts
// context.setContextPath("/*");
context.setVirtualHosts(new String[]{
"127.0.0.1",
"192.168.6.195",
"localhost",
"tool.domain.com"
});
이 우리는 부두 서버에 가상 호스트를 추가합니다. Google 도메인 용 자체 서명 인증서 (테스트 용)가 있습니다. 테스트/시각화를위한 다음
일부 JS-코드 :
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://127.0.0.1:7331/test/echo/test1111');
xhr.setRequestHeader('Host', 'https://tool.domain.com');
xhr.send();
그러나 크롬 (내가 너무 다른 브라우저를 생각한다) 차단
우리는 이런 일을 보관할 호스트 헤더
https 인 경우 https를 사용하는 것이 더 좋습니다. –
Google 도구에 ssl 인증서를 추가하려고하지만 문제가 대상입니다. 대상은 각 IP 주소를 가질 수 있습니다. 문제를 설명하기가 어렵습니다. –