SOCKS-endapunktið førir teg til netstæðið. TLS-mótparturin í tí sambandinum er netstæðið sjálvt, so lat vertsnavnið hjá málinum til tað lagskiftu socket-verksmiðjuna:

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.
    }
}

Brotini virða vanligar Java-net- og TLS-innflutningar, eina verandi sjálvgefna trúnaðaruppsetning og eina SOCKS-samband, sum ikki krevur proxy-loyniorð. Tað fremur handskakið; forritið má framvegis senda eina HTTP-umbøn í tí formi, sum ambætarin væntar. Fyri almenn HTTPS-mál á loyvdum almennum leiðum bjóðar SOCKS-proxy-listin møgulig endapunkt; samanber versjónina hjá ambætaranum og vertsnavnsstuðulin við hendan Java-socket-leiðin.

Les tær báðar identitymarnar í døminum

127.0.0.1:1080 er proxy-endapunktið, atkomandi frá hesi Java-gongdini. destination og destinationPort eyðmerkja netstæðið. createUnresolved varðveitir tað vertsnavnið til SOCKS-leiðina í staðin fyri at loysa tað beinanvegin á klientinum.

Tað lagskifta createSocket móttekur identityina hjá málinum. setEndpointIdentificationAlgorithm("HTTPS") biður greiðliga um vertsnavnskontrollirnar. Trúnaður at váttanar-ketuni hjá einum ráum SSLSocket prógvar ikki í sjálvum sær, at vertsnavnsváttanin er virkin. At skifta út navnið hjá proxyinum ella loopback fyri at dempa eitt misvátt, kann vátta skeivan endapunkt.

Halt trúnað og reinsan við sínum stigum

Sjálvgefna verksmiðjan brúkar uppsettu trúnaðar-skipanina hjá JVM. Eitt forrit við privatum krøvum kann í staðin brúka sína rætt uppsettu SSLContext-verksmiðju. Hetta valsstaðið er aðskilt frá SOCKS-leiðini; ein trúnaðarstjóri, sum góðtekur hvørt váttan, bøtir ikki eitt skeivt mótpartsnavn.

Ein SOCKS-avísan hendir áðrenn TLS; ein ótrúgv váttan ella skeivt vertsnavn brestur undir TLS; ein HTTP-villa kann koma aftaná. Innskráseting í proxyinum loyvir tunnilsumbønini í staðin fyri at vátta netstæðið innaní.

At lata tað lagskifta socketið aftur við sjálvvirkandi afturlating latar transportin aftur. Ytra tilfeingisøkið latar eisini tann transportin aftur, um innpakkingin ella handskakið brestur áðrenn vanliga fullføring.

Skyldar greinar