¿Cómo usar HttpsURLConnection a través de proxy por setProperty?

Entorno de red:

Cliente Https <=============> Servidor Proxy <==============> Servidor Https
192.168.17.11 <-----extranet------> 192.168.17.22
10.100.21.10 <----intranet-----> 10.100.21.11

ps: Cliente HTTP sin puerta de enlace predeterminada, pero puede hacer ping a 10.100.21.11

Descripción:

OS: Ubuntu 12.04 en 3 hosts
Cliente Https: Implementar con java (openjdk-6). Tener una interfaz de red.
Servidor proxy: Apache2.2. Tiene dos interfaces de red.
Servidor Https: Tomcat6.Have una interfaz de red.

Uso dos métodos para implementarhttpsurlconnection a través de proxy:
(Para facilitar, no escribo sobre la función de manejo de SSL para verificarserverTrusted yhostnameVerifier problema. Si es necesario voy a actualizar.)

Clase 1.Proxy
InetSocketAddress proxyInet = new InetSocketAddress("10.100.21.11",80);
Proxy proxy = new Proxy(Proxy.Type.HTTP, proxyInet);
URL httpsUrl = new URL("https://192.168.17.22:8443/test");
HttpsURLConnection httpsCon = (HttpsURLConnection) httpsUrl.openConnection(proxy);

httpsCon.setDoOutput(true);
httpsCon.setDoInput(true);
httpsCon.setRequestMethod("POST");
OutputStream out = httpsCon.getOutputStream();
OutputStreamWriter owriter = new OutputStreamWriter(out);

owriter.write("<request>test</request>");
owriter.flush();
owriter.close();
...

Este método era viable y observé que el flujo de paquetes también cumplía con mis expectativas.
HttpClient ---> ProxyServer ---> HttpServer

Pero cuando uso el método Set Property:

2.setProperty
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost",10.100.21.11);
System.setProperty("http.proxyPort","80");

URL httpsUrl = new URL("https://192.168.17.22:8443/test");
HttpsURLConnection httpsCon = (HttpsURLConnection)httpsUrl.openConnection();

httpsCon.setDoOutput(true);
httpsCon.setDoInput(true);
httpsCon.setRequestMethod("POST");
OutputStream out = httpsCon.getOutputStream();
OutputStreamWriter owriter = new OutputStreamWriter(out);

owriter.write("<request>test</request>");
owriter.flush();
owriter.close();
...

Conseguí unNoRouteToHostException: Network is unreachable.
Me confunde. No vi ningún paquete entre HttpClient y ProxyServer.
Pero HttpClient puede hacer ping a ProxyServer (10.100.12.10 ping 10.100.21.11)

Así que elimino la configuración de proxy (como sin usar proxy):
También consiguióNoRouteToHostException: Network is unreachable.
Pensé que esto es razonable. Porque no hay ruta a la extranet.

Supongo que parecesetProperty Método que la función interna dehttpsUrlConnection La voluntad de comprobar esta url puede ser accesible o no.

Pero es raro. El primer método puede ser el éxito.

¿Tienes alguna idea? ¿O cuáles son las diferencias entre el primer y segundo método?

+++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++

Actualizar

System.setProperty("https.proxyHost",10.100.21.11);
System.setProperty("https.proxyPort","80"); 

Puede funcionar y el flujo de paquetes es correcto para lo que espero.
Pero el conjunto https.proxyPort = 443 no es viable para mí

System.setProperty("https.proxyPort","443");

Se emitirá una excepción de la siguiente manera:

java.net.SocketException: Unexpected end of file from server 
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:770)
....

Así que pensé que Apache Proxy también tiene que ser modificado a la configuración correcta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta