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 خرابی آ سکتی ہے۔ پراکسی لاگ ان ٹنل درخواست کو مجاز کرتا ہے، اندر کی ویب سائٹ کی تصدیق نہیں کرتا۔

خودکار بندش فعال ہونے پر تہہ دار ساکٹ بند کرنا اس کی ترسیل بند کر دیتا ہے۔ معمول کی تکمیل سے پہلے ریپنگ یا ہینڈ شیک ناکام ہونے پر بیرونی وسیلہ دائرہ بھی وہ ترسیل بند کر دیتا ہے۔

متعلقہ مضامین