Yi amfani da asalin wurin da za a je don Java TLS a kan SOCKS
Fara haɗi ta SOCKS, sannan ka saka SSLSocket da sunan mai masaukin rukunin yanar gizon da bayyanannun binciken HTTPS.
Ƙarshen SOCKS yana kai ka zuwa rukunin yanar gizon. Abokin TLS a cikin wannan haɗin shi ne rukunin yanar gizon da kansa, don haka miƙa sunan mai masaukin wurin da za a je ga masana'antar soket ɗin da aka shimfiɗa:
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.
}
}Wannan guntun yana ɗaukan daidaitattun shigo da hanyoyin sadarwa na Java da TLS, ingantaccen tsarin amincewa na tsoho da haɗin SOCKS wanda ba ya buƙatar bayanan shiga wakili. Yana yin musafaha; aikace-aikacen har yanzu yana buƙatar aika buƙatar HTTP a tsarin da uwar garke ke tsammani. Don maƙasudin HTTPS na jama'a a kan hanyoyin jama'a da aka yarda, jerin wakilan SOCKS yana ba da ƙwararrun ƙarshen maƙasudai; daidaita sigar uwar garke da tallafin sunan mai masauki zuwa wannan hanyar soket ɗin Java.
Karanta asalin biyu a cikin misalin
127.0.0.1:1080 shine ƙarshen wakili, wanda ake iya isa daga wannan tsarin Java. destination da destinationPort suna gano rukunin yanar gizon. createUnresolved yana riƙe da wannan sunan mai masauki don hanyar SOCKS maimakon warware shi da wuri a kan abokin ciniki.
Shimfiɗaɗɗen createSocket yana karɓar asalin wurin da za a je. setEndpointIdentificationAlgorithm("HTTPS") yana buƙatar binciken sunan mai masauki a bayyane. Amincewar sarkar takaddun shaida na SSLSocket ɗanye ba ya tabbatar da kansa cewa an kunna tabbatar da sunan mai masauki. Sauya sunan wakili ko loopback don danne rashin daidaituwa na iya tabbatar da ƙarshen da ba daidai ba.
Riƙe amincewa da tsaftacewa tare da matakansu
Masana'antar tsoho tana amfani da tsarin amincewar JVM da aka saita. Aikace-aikacen da ke da buƙatu na sirri na iya amfani da masana'antarsa ta SSLContext da aka fara da kyau a maimakon haka. Wannan zaɓi ya bambanta da hanyar SOCKS; mai kula da amincewa da ke karɓar kowace takarda ba ya gyara sunan abokin da ba daidai ba.
Kin amincewar SOCKS yana faruwa kafin TLS; takardar da ba a amince da ita ko sunan mai masauki mara kyau yana gazawa a lokacin TLS; kuskuren HTTP na iya biyo baya. Shiga wakili yana ba da izinin buƙatar rami maimakon tabbatar da rukunin yanar gizon da ke ciki.
Rufe soket ɗin da aka shimfiɗa tare da kunna rufe kai yana rufe jigilarsa. Iyakar albarkatun waje ita ma tana rufe wannan jigilar idan naɗewa ko musafaha ya gaza kafin kammalawa ta al'ada.