SOCKS-endapunkturinn kemur þér á vefsvæðið. TLS-mótparturinn inni í þeirri tengingu er vefsvæðið sjálft, svo sendu hýsilheiti áfangastaðarins til lagskipts socket-verksmiðjunnar:

String destination = "example.com";
int destinationPort = 443;
Proxy proxy = new Proxy(
    Proxy.Type.SOCKS,
    new InetSocketAddress("127.0.0.1", 1080)
);

try (Socket transport = new Socket(proxy)) {
    transport.connect(
        InetSocketAddress.createUnresolved(destination, destinationPort),
        5000
    );
    SSLSocketFactory factory =
        (SSLSocketFactory) SSLSocketFactory.getDefault();
    try (SSLSocket tls = (SSLSocket) factory.createSocket(
            transport, destination, destinationPort, true)) {
        SSLParameters parameters = tls.getSSLParameters();
        parameters.setEndpointIdentificationAlgorithm("HTTPS");
        tls.setSSLParameters(parameters);
        tls.setSoTimeout(15000);
        tls.startHandshake();
        // Send the application's HTTPS request through tls.
    }
}

Brotinn gerir ráð fyrir stöðluðum Java-net- og TLS-innflutningi, fyrirliggjandi sjálfgefinni traustsstillingu og SOCKS-tengingu sem þarf engin proxy-skírteini. Hann framkvæmir handabandið; forritið þarf samt að senda HTTP-beiðni í því sniði sem þjónninn væntir. Fyrir opinber HTTPS-markmið á leyfðum opinberum leiðum býður SOCKS-proxylistinn hugsanlega endapunkta; stilltu útgáfu þjónsins og hýsilheitisstuðning í samræmi við þessa Java-socket-leið.

Lestu auðkennin tvö í dæminu

127.0.0.1:1080 er endapunktur proxysins, aðgengilegur frá þessu Java-ferli. destination og destinationPort auðkenna vefsvæðið. createUnresolved varðveitir hýsilheitið fyrir SOCKS-leiðina í stað þess að leysa það strax á biðlaranum.

Lagskipti createSocket tekur við auðkenni áfangastaðarins. setEndpointIdentificationAlgorithm("HTTPS") biður skýrt um hýsilheitisskoðanir sínar. Traust vottorðakeðju hráa SSLSocket-sins sannar ekki eitt og sér að hýsilheitissannprófun sé virk. Að skipta út nafni proxysins eða loopback til að bæla misræmi getur auðkennt rangan endapunkt.

Haltu trausti og hreinsun með sínum stigum

Sjálfgefna verksmiðjan notar stillta traustskipan JVM. Forrit með einkakröfur getur í staðinn notað rétt frumstillta SSLContext-verksmiðju sína. Þessi val er aðskilið frá SOCKS-leiðinni; trauststjóri sem tekur við hverju vottorði lagar ekki rangt mótpartsheiti.

SOCKS-höfnun á sér stað fyrir TLS; ótraust vottorð eða rangt hýsilheiti bregst við TLS; HTTP-villa getur fylgt á eftir. Innskráning í proxýið heimilar göngubeiðnina í stað þess að auðkenna vefsvæðið inni í henni.

Að loka lagskipta socketnum með sjálfvirkri lokun virkri lokar flutningnum. Ytra tilfangaumfangið lokar einnig þeim flutningi ef umbúðir eða handaband bregst fyrir eðlilega lokun.

Tengdir greinar