curl PAC dosyanızı okuyamaz: yerine proxy'yi geçirin
PAC bir JavaScript ilkesidir; curl ise uç nokta ister. İlkenin URL'niz için hangi proxy'yi seçtiğini sorun, onu geçirin ve NO_PROXY ile TLS'e dikkat edin.
PAC dosyasının adresi ile proxy'nin uç noktası bir yapılandırma dosyasında birbirinin yerine geçebilir görünür, ama geçmez. Biri her URL için değerlendirilmesi gereken bir ilke programıdır; diğeri bağlantı kabul eden bir ana makine ve bağlantı noktasıdır. curl yalnızca ikincisini anlar. Bir PAC adresini --proxy seçeneğine geçirmek, genellikle bir web sunucusuna yapılan uzun bir CONNECT zaman aşımından sonra kafa karıştırıcı biçimde başarısız olan bir kategori hatasıdır.
Her biri aslında nedir
| Elinde olan | Nedir | curl bununla ne yapar |
|---|---|---|
http://wpad.corp.example/proxy.pac | Belirli bir URL için proxy veya doğrudan bağlantı döndüren JavaScript | Onu dosya olarak indirir ve orada durur |
http://proxy.corp.example:8080 | Proxy üzerinden gelen istekleri kabul eden bir dinleyici | Onu kullanır, HTTPS hedefleri için CONNECT dahil |
Bunu açıkça söyler curl hakkında sık sorulan sorular: curl hiçbir JavaScript veya PAC yorumu sunmaz. curl çevresinde PAC anlayan bir sarmalayıcı bunu yapabilir, ama curl'ün kendisi yapamaz ve hiçbir bayrak onu tarayıcıya dönüştürmez.
Tarayıcı neden çalışır da curl çalışmaz
Tarayıcı sistemin proxy yapılandırmasıyla bütünleşir, PAC dosyasını indirir ve kurallarını açtığınız URL'ye karşı çalıştırır. O değerlendirme PAC dosyasının sunduğu hizmettir ve tarayıcının içinde olur, sizin terminalinizde değil.
PAC dosyasını curl ile indirmek yalnızca metnini getirir. Bu, curl'ün ilkeyi yürütmesini sağlamaz ve proxy bulmak için elle okumak aynı değerlendirmenin elle yapılmış sürümüdür, yanlış dalı seçme şansı da aynıdır. Yine de okuyacaksanız, dosyadaki ilk proxy adı yerine ana makinenize uyan return ifadesini okuyun. PAC dosyalarının çoğunda birkaç tane bulunur ve size yalnızca bir dal uygulanır.
Onaylanmış bir HTTP proxy ve onaylanmış bir HTTPS hizmeti için örnek bir istek şudur:
curl --proxy http://proxy.corp.example:8080 https://service.example.net/status
İlk adres proxy'nin dinleyicisidir, ikincisi istediğiniz hizmettir. Bunlar örnek uç noktalardır, birinin yaptığı test değildir, bu yüzden bunları kuruluşunuzun şeması, bağlantı noktası ve kimlik doğrulama akışıyla değiştirin.
Bu hedef için proxy'yi seçin
Yöneticiye kuruluşun hangi proxy'ye sahip olduğunu değil, ilkenin ihtiyaç duyduğunuz URL için hangi proxy'yi seçtiğini sorun. PAC kuralları iç hizmetler, genel siteler ve yük devretme durumları için farklı sonuçlar döndürebilir ve bugün URL'nize uyan bir kural bir düzenlemeden sonra başka birine uyabilir.
İş akışı birden fazla bilinen istek gerektiriyorsa, yöneticinin desteklediği statik bir ayar veya onaylanmış PAC anlayan bir tümleştirme kullanın. Kopyalanmış tek bir adresi sabit kodlamak, ilke değişene ve o adresin neden seçildiğini kimse hatırlamayana kadar çalışır.
Sonra curl'ün neyi devraldığına bakın. Proxy ortam değişkenleri ve NO_PROXY geçirdiğiniz proxy'yi geçersiz kılabilir veya dışlayabilir ve hedefinize uyan bir dışlama isteği sessizce doğrudan gönderir. Her dışlamayı silmek veya her şeyi tek bir adresten geçirmeye zorlamak yerine amaçlanan ilkeyi koruyun. İsteği bir kez -v ile çalıştırın ve gerçekte hangi adrese bağlandığını kontrol edin.
İki TLS kimliğini ayrı tutun
Bir HTTPS proxy ile iki TLS bağlantısı devrede: sizinki proxy'ye ve proxy'nin hedefe olanı. Her birinin doğrulanacak kendi kimliği vardır ve bunlardan herhangi biri için doğrulamayı kapatmak PAC düzeltmesi değil, ilkine eklenen ikinci bir sorundur.
Doğrulamayı açık bırakın ve aldığınız hatayı okuyun. Proxy kimlik doğrulama meydan okuması, erişilemeyen bir proxy ve web sitesinin reddi üç farklı sonuçtur ve yalnızca ilki kimlik bilgileriyle ilgilidir. VPN yine de özel bir proxy'ye izin verilen bir yol sağlamalıdır, proxy ana makinesinin kendi ad çözümlemesi dahil, bunlardan herhangi biri başarılı olmadan önce.
Uç noktayı, şemayı, bağlantı noktasını, kimlik doğrulama yöntemini, dışlamaları ve proxy'ye giden VPN yolunu yazın. O kayıt bir sonraki isteği yeniden üretilebilir kılan şeydir ve proxy'nizi bilmek ile onu tahmin etmek arasındaki fark budur.