https 서버 예제

단일 IP 주소에서 여러 HTTPS 서버를 실행하기 위한 보다 일반적인 솔루션은 브라우저가 SSL 핸드셰이크 중에 요청된 서버 이름을 전달할 수 있도록 하는 TLS 서버 이름 표시 확장(SNI, RFC 6066)이며, 따라서 서버는 인증서를 사용하여 야 합니다. SNI는 현재 대부분의 최신 브라우저에서 지원되지만 일부 이전 또는 특수 클라이언트에서는 사용할 수 없습니다. 그 중 하나는 JLHTTP – 종속성이없는 작은 한 파일 서버 (또는 ~ 50K / 35K jar)인 Java 경량 HTTP 서버입니다. 키 저장소, SSLContext 등을 설정하는 것은 표준 JSSE 구현에 의존하거나 SSL을 구성하는 표준 시스템 속성을 지정할 수 있으므로 위와 유사합니다. 자세한 내용은 FAQ 또는 코드 및 설명서를 참조하십시오. 다른 사람에게 알림: 위의 솔루션에서 com.sun.net.httpserver.HttpsServer는 자바 표준의 일부가 아닙니다. 오라클/OpenJDK JVM과 함께 번들로 제공하지만 모든 JVM에 포함되지 않으므로 모든 곳에서 작동하지 않습니다. 이 게시물에서는 Java를 사용하여 서버와 클라이언트 간의 HTTPS 통신을 설정할 수있는 HTTPS 서버및 HTTPS 클라이언트 데모를 만듭니다. 이것은 우리가 SSL 통신에 대한 우리의 이해를 테스트 할 때 매우 유용해야합니다. 자세한 SSL 클라이언트와 간단한 HttpsURLConnection를 HTTPS 클라이언트로 사용합니다. ServerThread에서는 먼저 클라이언트와 핸드셰이크를 수행하기 시작하고 핸드셰이크가 성공적으로 완료되면 서버와 클라이언트 간에 응용 프로그램 데이터를 교환할 수 있습니다. 서버가 클라이언트에서 응용 프로그램 데이터를 수신하면 클라이언트에 200(OK)의 응답 코드를 보냅니다.

다음은 간단한 HttpsURLConnection를 사용하여 핸드셰이크와 같은 모든 세부 정보를 캡슐화하는 또 다른 HTTPS 클라이언트입니다. httpd = HTTPServer ((`localhost`, 4443), SimpleHTTPRequestHandler) http.server 가져오기 HTTPServer, BaseHTTPRequestHandler, SimpleHTTPRequestHandler 가져오기 ssl 나는 자바 6 SE에서 HttpsServer 클래스를 사용 하 여 계획 하지만 난 그것을 작동 하기 위해 고군분투 하 고 있어요 . 테스트 클라이언트로, 나는 cygwin 명령 줄 (wget https://[address]:[port])에서 wget를 사용하고 있지만 wget는 “SSL 연결을 설정할 수 없음”이라고 보고합니다. HttpsServer가 구축된 클래스를 사용하여 더 가벼운 무게인 ServerSocket을 사용할 수 있습니다.

Uncategorized