SOCKS ئاخىرلاش نۇقتىسى سىزنى تور بېكەتكە ئېلىپ بارىدۇ. ئۇ ئۇلانمىنىڭ ئىچىدىكى TLS ھەمراھى تور بېكەتنىڭ ئۆزى، شۇڭا مەنزىلنىڭ خوست ئاتىنى قەۋەتلىك سوكېت زاۋۇتىغا بېرىڭ:

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

بۇ پارچە ئۆلچەملىك Java تور ۋە TLS ئىمپورتىنى، مەۋجۇت سۈكۈتتىكى ئىشەنچ سەپلىمىسىنى ۋە پروكسى ھەقىقەت نامىنى تەلەپ قىلمايدىغان SOCKS ئۇلانمىسىنى پەرەز قىلىدۇ. ئۇ قول ئېلىشىشنى ئىجرا قىلىدۇ؛ پروگرامما يەنىلا مۇلازىمېتىر كۈتكەن فورماتتا HTTP تەلەپ ئەۋەتىشى كېرەك. رۇخسەت قىلىنغان ئاممىۋى يوللاردىكى ئاممىۋى HTTPS نىشانلىرى ئۈچۈن SOCKS پروكسى تىزىملىكى نامزات ئاخىرلاش نۇقتىلىرىنى تەمىنلەيدۇ؛ مۇلازىمېتىرنىڭ نەشرى ۋە خوست ئاتى قوللىشىنى بۇ Java سوكېت يولىغا ماسلاشتۇرۇڭ.

مىسالدىكى ئىككى كىملىكنى ئوقۇڭ

127.0.0.1:1080 پروكسىنىڭ ئاخىرلاش نۇقتىسى، بۇ Java جەريانىدىن يېتىشكىلى بولىدۇ. destination ۋە destinationPort تور بېكەتنى بەلگىلەيدۇ. createUnresolved بۇ خوست ئاتىنى خېرىداردا ئالدىن ھەل قىلىشنىڭ ئورنىغا SOCKS يولى ئۈچۈن ساقلايدۇ.

قەۋەتلىك createSocket مەنزىلنىڭ كىملىكىنى قوبۇل قىلىدۇ. setEndpointIdentificationAlgorithm("HTTPS") ئۇنىڭ خوست ئاتى تەكشۈرۈشىنى ئېنىق تەلەپ قىلىدۇ. خام SSLSocket نىڭ گۇۋاھنامە زەنجىرى ئىشەنچىسى خوست ئاتى دەلىللەشنىڭ ئوچۇق ئىكەنلىكىنى ئۆزلۈكىدىن ئىسپاتلىيالمايدۇ. ماسلاشماسلىقنى بېسىش ئۈچۈن پروكسى ئاتى ياكى loopback نى ئالماشتۇرۇش خاتا ئاخىرلاش نۇقتىسىنى دەلىللىشى مۇمكىن.

ئىشەنچ ۋە تازىلاشنى ئۆز باسقۇچلىرىدا ساقلاڭ

سۈكۈتتىكى زاۋۇت JVM نىڭ سەپلەنگەن ئىشەنچ تەرتىپىنى ئىشلىتىدۇ. شەخسىي تەلەپلىك پروگرامما ئۇنىڭ ئورنىغا ئۆزىنىڭ توغرا قوزغىتىلغان SSLContext زاۋۇتىنى ئىشلىتەلەيدۇ. بۇ تاللاش SOCKS يولىدىن ئايرىم؛ ھەر بىر گۇۋاھنامىنى قوبۇل قىلىدىغان ئىشەنچ باشقۇرغۇچى خاتا ھەمراھ ئاتىنى تۈزەتمەيدۇ.

SOCKS رەت قىلىش TLS دىن بۇرۇن يۈز بېرىدۇ؛ ئىشەنچسىز گۇۋاھنامە ياكى خاتا خوست ئاتى TLS جەريانىدا مەغلۇپ بولىدۇ؛ ئاندىن HTTP خاتالىقى كېلىشى مۇمكىن. پروكسىغا كىرىش تونېل تەلىپىگە ئىجازەت بېرىدۇ، ئىچىدىكى تور بېكەتنى دەلىللىمەيدۇ.

ئاپتوماتىك تاقاش ئوچۇق تۇرغاندا قەۋەتلىك سوكېتنى تاقاش ئۇنىڭ توشۇشىنى تاقايدۇ. نورمال تاماملاشتىن بۇرۇن ئوراش ياكى قول ئېلىشىش مەغلۇپ بولسا، سىرتقى بايلىق دائىرىسىمۇ ئۇ توشۇشنى تاقايدۇ.

مۇناسىۋەتلىك ماقالىلەر