Ibi ipari SOCKS mu ọ lọ si oju opo wẹẹbu. Alabaṣepọ TLS inu asopọ yẹn ni oju opo wẹẹbu funrararẹ, nitorinaa fi orukọ agbalejo ibi-afẹde ranṣẹ si ile-iṣẹ socket ti o ni Layer:

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

Yi ege ro pe awọn agbewọle Java networking ati TLS boṣewa, iṣeto igbẹkẹle aiyipada ti o wa tẹlẹ ati asopọ SOCKS ti ko nilo awọn ẹri aṣoju. O ṣe ifọwọsi ọwọ; ohun elo naa tun nilo lati fi ibeere HTTP ranṣẹ ni ọna ti olupin n reti. Fun awọn ibi-afẹde HTTPS ti gbogbo eniyan lori awọn ipa ọna gbangba ti a gba laaye, akojọ aṣoju SOCKS n pese awọn ibi ipari oludije; ba ẹya olupin ati atilẹyin orukọ agbalejo mu pẹlu ipa ọna socket Java yii.

Ka awọn idanimọ meji ninu apẹẹrẹ

127.0.0.1:1080 ni ibi ipari aṣoju, ti o le de ọdọ lati ilana Java yii. destination ati destinationPort ṣe idanimọ oju opo wẹẹbu naa. createUnresolved tọju orukọ agbalejo yẹn fun ipa ọna SOCKS dipo yanju rẹ ni kiakia lori alabara.

createSocket ti o ni Layer gba idanimọ ibi-afẹde. setEndpointIdentificationAlgorithm("HTTPS") beere awọn ayẹwo orukọ agbalejo rẹ ni gbangba. Igbẹkẹle pq ijẹrisi ti SSLSocket aise ko fi ara rẹ mulẹ pe ayẹwo orukọ agbalejo ti muu ṣiṣẹ. Rirọpo orukọ aṣoju tabi loopback lati dinku aibaramu le jẹri ibi ipari ti ko tọ.

Pa igbẹkẹle ati mimọ mọ pẹlu awọn ipele wọn

Ile-iṣẹ aiyipada n lo ilana igbẹkẹle ti a ti ṣeto ti JVM. Ohun elo pẹlu awọn ibeere ikọkọ le lo ile-iṣẹ SSLContext rẹ ti a ti bẹrẹ daradara dipo. Yiyan yẹn yatọ si ipa ọna SOCKS; oluṣakoso igbẹkẹle ti o gba gbogbo ijẹrisi ko tun orukọ alabaṣepọ ti ko tọ ṣe.

Ijusile SOCKS waye ṣaaju TLS; ijẹrisi ti a ko gbẹkẹle tabi orukọ agbalejo ti ko tọ kuna lakoko TLS; aṣiṣe HTTP le tẹle lẹhinna. Wiwọle aṣoju fun laaye ibeere tunnel dipo ki o jẹri oju opo wẹẹbu ti o wa ninu rẹ.

Pipade socket ti o ni Layer pẹlu pipade aifọwọyi ti o muu ṣiṣẹ n pa gbigbe rẹ. Iwọn orisun ita tun pa gbigbe yẹn ti iwewe tabi ifọwọsi ọwọ ba kuna ṣaaju ipari deede.

Àwọn àpilẹ̀kọ tó jọra