Network Options
NetworkOptions.ca_roots
— Functionca_roots() :: Union{Nothing, String}
ca_roots()
fonksiyonu, çağırana PEM kodlu sertifika otoritesi köklerinin dosyasını veya dizinini nerede bulacağını söyler. Varsayılan olarak, sistemin yerleşik sertifika doğrulama mekanizmasını kullanarak ana bilgisayarları doğrulama yeteneğine sahip yerleşik TLS motorlarına sahip Windows ve macOS gibi sistemlerde, bu fonksiyon nothing
döndürecektir. Klasik UNIX sistemlerinde (macOS hariç), kök sertifikaları genellikle /etc
dizininde bir dosyada saklanır: mevcut UNIX sisteminin yaygın yerleri aranacak ve bu yollardan biri mevcutsa, o yol döndürülecektir; eğer bu tipik kök sertifika yollarından hiçbiri mevcut değilse, o zaman Julia ile birlikte gelen kök sertifikalarının setinin yolu döndürülecektir.
ca_roots()
tarafından döndürülen varsayılan değer, JULIA_SSL_CA_ROOTS_PATH
, SSL_CERT_DIR
veya SSL_CERT_FILE
ortam değişkenlerini ayarlayarak geçersiz kılınabilir; bu durumda bu fonksiyon, ayarlanmış olan bu değişkenlerden ilki ne olursa olsun, her zaman o değişkenin değerini döndürecektir (yol mevcut olup olmadığına bakılmaksızın). JULIA_SSL_CA_ROOTS_PATH
boş bir dizeye ayarlandığında, diğer değişkenler göz ardı edilir (sanki ayarlanmamış gibi); diğer değişkenler boş bir dizeye ayarlandığında, ayarlanmamış gibi davranırlar.
NetworkOptions.ca_roots_path
— Functionca_roots_path() :: String
ca_roots_path()
fonksiyonu, ca_roots()
fonksiyonuna benzer, ancak her zaman PEM kodlu sertifika otoritesi köklerinin bir dosya veya dizin yolunu döndürür. Windows veya macOS gibi dosya sisteminde sistem kök sertifikalarının saklanmadığı bir sistemde çağrıldığında, şu anda Julia ile birlikte paketlenmiş kök sertifikalarının setinin yolunu döndürecektir. (Gelecekte, bu fonksiyon sistemden kök sertifikalarını çıkartıp, yolunun döndürüleceği bir dosyaya kaydedebilir.)
TLS kullanan bir kütüphaneyi sistem sertifikalarını kullanacak şekilde yapılandırmak mümkünse, bu genellikle tercih edilir: yani, sistem sertifikalarının kullanılacağını belirtmek için nothing
döndüren ca_roots()
kullanmak daha iyidir. ca_roots_path()
fonksiyonu yalnızca kök sertifikaları için bir dosya veya dizin yoluna gereksinim duyan kütüphaneleri yapılandırırken kullanılmalıdır.
ca_roots_path()
tarafından döndürülen varsayılan değer, JULIA_SSL_CA_ROOTS_PATH
, SSL_CERT_DIR
veya SSL_CERT_FILE
ortam değişkenlerini ayarlayarak geçersiz kılınabilir; bu durumda bu fonksiyon, ayarlanmış olan bu değişkenlerden ilki ne olursa olsun, her zaman o değişkenin değerini döndürecektir (yolun var olup olmadığına bakılmaksızın). JULIA_SSL_CA_ROOTS_PATH
boş bir dizeye ayarlandığında, diğer değişkenler göz ardı edilir (sanki ayarlanmamış gibi); diğer değişkenler boş bir dizeye ayarlandığında, ayarlanmamış gibi davranırlar.
NetworkOptions.ssh_dir
— Functionssh_dir() :: String
ssh_dir()
fonksiyonu, ssh
programının yapılandırma dosyalarını sakladığı/baktığı dizinin konumunu döndürür. Varsayılan olarak bu ~/.ssh
'dir, ancak bu, SSH_DIR
ortam değişkenini ayarlayarak geçersiz kılınabilir.
NetworkOptions.ssh_key_pass
— Functionssh_key_pass() :: String
ssh_key_pass()
fonksiyonu, ayarlanmışsa SSH_KEY_PASS
ortam değişkeninin değerini döndürür veya ayarlanmamışsa nothing
döndürür. Gelecekte, bu, güvenli sistem depolaması gibi diğer yollarla bir şifre bulma yeteneğine sahip olabilir, bu nedenle bir SSH özel anahtarını şifrelemek için bir şifreye ihtiyaç duyan paketler, ortam değişkenini doğrudan kontrol etmek yerine bu API'yi kullanmalıdır, böylece eklendiklerinde bu yetenekleri otomatik olarak kazanırlar.
NetworkOptions.ssh_key_name
— Functionssh_key_name() :: String
ssh_key_name()
fonksiyonu, SSH'nin bir bağlantı kurarken kullanması gereken anahtar dosyalarının temel adını döndürür. Bu fonksiyonun doğrudan çağrılması için genellikle bir neden yoktur ve kütüphaneler genellikle tam yolları almak için ssh_key_path
ve ssh_pub_key_path
fonksiyonlarını kullanmalıdır. Eğer SSH_KEY_NAME
ortam değişkeni ayarlanmışsa, bu fonksiyon onu döndürür; aksi takdirde varsayılan olarak id_rsa
döndürür.
NetworkOptions.ssh_key_path
— Functionssh_key_path() :: String
ssh_key_path()
fonksiyonu, SSH bağlantıları için kullanılacak SSH özel anahtar dosyasının yolunu döndürür. Eğer SSH_KEY_PATH
ortam değişkeni ayarlanmışsa, o değeri döndürecektir. Aksi takdirde, varsayılan olarak şunu döndürür:
joinpath(ssh_dir(), ssh_key_name())
Bu varsayılan değer, SSH_DIR
ve SSH_KEY_NAME
ortam değişkenlerine bağlıdır.
NetworkOptions.ssh_pub_key_path
— Functionssh_pub_key_path() :: String
ssh_pub_key_path()
fonksiyonu, SSH bağlantıları için kullanılacak olan SSH genel anahtar dosyasının yolunu döndürür. Eğer SSH_PUB_KEY_PATH
ortam değişkeni ayarlanmışsa, o değeri döndürecektir. Eğer bu ayarlanmamışsa ama SSH_KEY_PATH
ayarlanmışsa, o yolun sonuna .pub
ekleyerek döndürecektir. Eğer ikisi de ayarlanmamışsa, varsayılan olarak
joinpath(ssh_dir(), ssh_key_name() * ".pub")
değerini döndürür. Bu varsayılan değer, SSH_DIR
ve SSH_KEY_NAME
ortam değişkenlerine bağlıdır.
NetworkOptions.ssh_known_hosts_files
— Functionssh_known_hosts_files() :: Vector{String}
ssh_known_hosts_files()
fonksiyonu, SSH bağlantıları için uzak sunucuların kimliklerini belirlerken kullanılacak SSH bilinen anahtar dosyalarının yollarının bir vektörünü döndürür. Varsayılan olarak bu fonksiyon şunları döndürür:
[joinpath(ssh_dir(), "known_hosts"), bundled_known_hosts]
burada bundled_known_hosts
, bu paketle birlikte gelen (github.com ve gitlab.com için bilinen anahtarları içeren) bir bilinen anahtar dosyasının kopyasının yoludur. Ancak, SSH_KNOWN_HOSTS_FILES
ortam değişkeni ayarlanmışsa, değeri :
karakterine (veya Windows'ta ;
karakterine) göre yollar olarak ayrılır ve bu yolların vektörü döndürülür. Bu vektörün herhangi bir bileşeni boşsa, varsayılan bilinen anahtar yollarına genişletilir.
ssh_known_hosts_files()
kullanan paketler, ideal olarak, ana bilgisayar adı ve anahtar türlerini karşılaştırarak eşleşen girişleri aramalıdır; eşleşen ilk giriş, ana bilgisayarın kesin kimliği olarak kabul edilir. Çağrıcı anahtar türünü karşılaştıramazsa (örneğin, çünkü hashlenmişse), yukarıdaki algoritmayı, her dosyada bir ana bilgisayar için tüm eşleşen girişleri arayarak yaklaşık olarak uygulamalıdır: bir dosyada bir ana bilgisayar için herhangi bir giriş varsa, bunlardan biri eşleşmelidir; çağrıcı, daha önceki bir dosyada söz konusu ana bilgisayar için hiçbir giriş yoksa, daha fazla bilinen anahtar dosyalarında aramaya devam etmelidir.
NetworkOptions.ssh_known_hosts_file
— Functionssh_known_hosts_file() :: String
ssh_known_hosts_file()
fonksiyonu, SSH bağlantıları için uzak sunucuların kimliklerini belirlerken kullanılacak bir SSH bilinen anahtarlar dosyasının tek bir yolunu döndürür. Gerçekten var olan ssh_known_hosts_files
tarafından döndürülen ilk yolu döndürür. Birden fazla bilinen anahtarlar dosyasında arama yapabilen çağrıcılar, bunun belgelerinde açıklandığı gibi döndürülen tüm dosyalarda anahtar eşleşmeleri aramak için ssh_known_hosts_files
'ı kullanmalıdır.
NetworkOptions.verify_host
— Functionverify_host(url::AbstractString, [transport::AbstractString]) :: Bool
verify_host
fonksiyonu, bir hostun kimliğinin güvenli taşıma yöntemleri (TLS veya SSH gibi) üzerinden iletişim kurarken doğrulanıp doğrulanmayacağını çağırana bildirir. url
argümanı şunlardan biri olabilir:
proto://
ile başlayan düzgün bir URLssh
tarzı çıplak bir host adı veyauser@
ile önceden tanımlanmış bir host adı- Yukarıdaki gibi bir
scp
tarzı host, ardından:
ve bir yol konumu
Her durumda, host adı kısmı ayrıştırılır ve doğrulama yapılıp yapılmayacağı kararı yalnızca host adına dayanarak verilir, giriş URL'sinin başka bir yönü dikkate alınmaz. Özellikle, URL'nin protokolü önemli değildir (aşağıda daha fazla bilgi).
transport
argümanı, sorgunun hangi tür taşıma ile ilgili olduğunu belirtir. Şu anda bilinen değerler SSL
/ssl
(takma adı TLS
/tls
) ve SSH
/ssh
dir. Eğer taşıma belirtilmezse, sorgu yalnızca host adının taşıma ne olursa olsun doğrulanmaması gerektiği durumunda true
dönecektir.
Host adı, transport
sağlanıp sağlanmadığına ve değerine bağlı olarak ilgili ortam değişkenlerindeki host desenleriyle eşleştirilir:
JULIA_NO_VERIFY_HOSTS
— herhangi bir taşıma için doğrulanmaması gereken hostlarJULIA_SSL_NO_VERIFY_HOSTS
— SSL/TLS için doğrulanmaması gereken hostlarJULIA_SSH_NO_VERIFY_HOSTS
— SSH için doğrulanmaması gereken hostlarJULIA_ALWAYS_VERIFY_HOSTS
— her zaman doğrulanması gereken hostlar
Bu değişkenlerin her birinin değerleri, aşağıdaki sözdizimine sahip host adı desenlerinin virgülle ayrılmış bir listesidir — her desen .
ile parçalara ayrılır ve her parça aşağıdakilerden biri olmalıdır:
- Bir veya daha fazla ASCII harfi, rakam, tire veya alt çizgi içeren bir literal alan adı bileşeni (teknik olarak yasal bir host adı parçası değildir, ancak bazen kullanılır). Bir literal alan adı bileşeni yalnızca kendisiyle eşleşir.
**
, sıfır veya daha fazla alan adı bileşenini eşleştirir.*
, herhangi bir alan adı bileşenini eşleştirir.
Bir host adını bu değişkenlerden birindeki desen listesiyle eşleştirirken, host adı .
ile bileşenlere ayrılır ve bu kelime dizisi desenle eşleştirilir: bir literal desen, o değere sahip bir host adı bileşeniyle tam olarak eşleşir; bir *
deseni, herhangi bir değere sahip bir host adı bileşeniyle tam olarak eşleşir; bir **
deseni, herhangi bir sayıda host adı bileşeniyle eşleşir. Örneğin:
**
herhangi bir host adını eşleştirir**.org
.org
üst düzey alanındaki herhangi bir host adını eşleştirirexample.com
yalnızca tam olarakexample.com
host adını eşleştirir*.example.com
api.example.com
ile eşleşir ancakexample.com
veyav1.api.example.com
ile eşleşmez**.example.com
example.com
dahil olmak üzereexample.com
altındaki herhangi bir alanı,api.example.com
vev1.api.example.com
ile eşleştirir