Network Options
NetworkOptions.ca_roots
— Functionca_roots() :: Union{Nothing, String}
ca_roots()
함수는 호출자에게 PEM 인코딩된 인증 기관 루트의 파일 또는 디렉토리를 찾을 수 있는 위치를 알려줍니다. 기본적으로 Windows 및 macOS와 같은 시스템에서는 내장 TLS 엔진이 시스템의 내장 인증서 검증 메커니즘을 사용하여 호스트를 검증하는 방법을 알고 있기 때문에 이 함수는 nothing
을 반환합니다. 고전 UNIX 시스템(맥OS 제외)에서는 루트 인증서가 일반적으로 /etc
의 파일에 저장됩니다: 현재 UNIX 시스템의 일반적인 위치가 검색되며, 이러한 경로 중 하나가 존재하면 반환됩니다. 이러한 일반적인 루트 인증서 경로가 존재하지 않으면 Julia와 함께 번들된 루트 인증서 세트의 경로가 반환됩니다.
ca_roots()
가 반환하는 기본 값은 JULIA_SSL_CA_ROOTS_PATH
, SSL_CERT_DIR
또는 SSL_CERT_FILE
환경 변수를 설정하여 재정의할 수 있으며, 이 경우 이 함수는 설정된 변수 중 첫 번째 변수의 값을 항상 반환합니다(경로가 존재하는지 여부에 관계없이). JULIA_SSL_CA_ROOTS_PATH
가 빈 문자열로 설정되면 다른 변수는 무시됩니다(설정되지 않은 것처럼); 다른 변수가 빈 문자열로 설정되면 설정되지 않은 것처럼 동작합니다.
NetworkOptions.ca_roots_path
— Functionca_roots_path() :: String
ca_roots_path()
함수는 ca_roots()
함수와 유사하지만 항상 PEM 인코딩된 인증 기관 루트의 파일 또는 디렉토리 경로를 반환합니다. Windows 또는 macOS와 같이 시스템 루트 인증서가 파일 시스템에 저장되지 않는 시스템에서 호출될 경우, 현재 Julia와 함께 번들된 루트 인증서 세트의 경로를 반환합니다. (앞으로 이 함수는 시스템에서 루트 인증서를 추출하고 그 경로를 반환하는 파일에 저장할 수 있습니다.)
TLS를 사용하는 라이브러리를 구성할 수 있는 경우 시스템 인증서를 사용하는 것이 일반적으로 바람직합니다. 즉, 시스템 인증서를 사용해야 함을 나타내기 위해 nothing
을 반환하는 ca_roots()
를 사용하는 것이 더 좋습니다. ca_roots_path()
함수는 루트 인증서에 대한 파일 또는 디렉토리 경로가 필수인 라이브러리를 구성할 때만 사용해야 합니다.
ca_roots_path()
가 반환하는 기본 값은 JULIA_SSL_CA_ROOTS_PATH
, SSL_CERT_DIR
또는 SSL_CERT_FILE
환경 변수를 설정하여 재정의할 수 있으며, 이 경우 이 함수는 설정된 변수 중 첫 번째 변수의 값을 항상 반환합니다(경로가 존재하든 아니든). JULIA_SSL_CA_ROOTS_PATH
가 빈 문자열로 설정되면 다른 변수는 무시됩니다(설정되지 않은 것처럼); 다른 변수가 빈 문자열로 설정되면 설정되지 않은 것처럼 동작합니다.
NetworkOptions.ssh_dir
— Functionssh_dir() :: String
ssh_dir()
함수는 ssh
프로그램이 구성 파일을 저장/찾는 디렉토리의 위치를 반환합니다. 기본적으로 이는 ~/.ssh
이지만, 환경 변수 SSH_DIR
을 설정하여 이를 재정의할 수 있습니다.
NetworkOptions.ssh_key_pass
— Functionssh_key_pass() :: String
ssh_key_pass()
함수는 환경 변수 SSH_KEY_PASS
가 설정되어 있으면 그 값을 반환하고, 설정되어 있지 않으면 nothing
을 반환합니다. 미래에는 보안 시스템 저장소와 같은 다른 방법으로 비밀번호를 찾을 수 있을 것으로 예상되므로, SSH 개인 키를 복호화하는 데 비밀번호가 필요한 패키지는 환경 변수를 직접 확인하는 대신 이 API를 사용해야 하며, 이를 통해 추가될 때 자동으로 이러한 기능을 얻을 수 있습니다.
NetworkOptions.ssh_key_name
— Functionssh_key_name() :: String
ssh_key_name()
함수는 SSH가 연결을 설정할 때 사용해야 하는 키 파일의 기본 이름을 반환합니다. 일반적으로 이 함수를 직접 호출할 이유는 없으며, 라이브러리는 일반적으로 전체 경로를 얻기 위해 ssh_key_path
및 ssh_pub_key_path
함수를 사용해야 합니다. 환경 변수 SSH_KEY_NAME
이 설정되어 있으면 이 함수는 해당 값을 반환하고, 그렇지 않으면 기본적으로 id_rsa
를 반환합니다.
NetworkOptions.ssh_key_path
— Functionssh_key_path() :: String
ssh_key_path()
함수는 SSH 연결에 사용해야 하는 SSH 개인 키 파일의 경로를 반환합니다. SSH_KEY_PATH
환경 변수가 설정되어 있으면 해당 값을 반환합니다. 그렇지 않으면 기본적으로 다음을 반환합니다.
joinpath(ssh_dir(), ssh_key_name())
이 기본 값은 SSH_DIR
및 SSH_KEY_NAME
환경 변수에 따라 달라집니다.
NetworkOptions.ssh_pub_key_path
— Functionssh_pub_key_path() :: String
ssh_pub_key_path()
함수는 SSH 연결에 사용해야 하는 SSH 공개 키 파일의 경로를 반환합니다. SSH_PUB_KEY_PATH
환경 변수가 설정되어 있으면 해당 값을 반환합니다. 설정되어 있지 않지만 SSH_KEY_PATH
가 설정되어 있으면 해당 경로에 .pub
접미사를 추가하여 반환합니다. 둘 다 설정되어 있지 않으면 기본적으로 다음을 반환합니다.
joinpath(ssh_dir(), ssh_key_name() * ".pub")
이 기본 값은 SSH_DIR
및 SSH_KEY_NAME
환경 변수에 따라 달라집니다.
NetworkOptions.ssh_known_hosts_files
— Functionssh_known_hosts_files() :: Vector{String}
ssh_known_hosts_files()
함수는 SSH 연결을 위한 원격 서버의 신원을 설정할 때 사용해야 하는 SSH 알려진 호스트 파일의 경로 벡터를 반환합니다. 기본적으로 이 함수는 다음을 반환합니다.
[joinpath(ssh_dir(), "known_hosts"), bundled_known_hosts]
여기서 bundled_known_hosts
는 이 패키지와 함께 번들된 알려진 호스트 파일의 경로입니다(여기에는 github.com
및 gitlab.com
의 알려진 호스트 키가 포함되어 있습니다). 그러나 환경 변수 SSH_KNOWN_HOSTS_FILES
가 설정된 경우, 그 값은 :
문자(또는 Windows에서는 ;
로)로 경로를 분할하여 이 경로 벡터가 대신 반환됩니다. 이 벡터의 어떤 구성 요소가 비어 있으면 기본 알려진 호스트 경로로 확장됩니다.
ssh_known_hosts_files()
를 사용하는 패키지는 이상적으로 호스트 이름과 키 유형을 비교하여 일치하는 항목을 찾아야 하며, 일치하는 파일의 첫 번째 항목을 호스트의 결정적인 신원으로 간주해야 합니다. 호출자가 키 유형을 비교할 수 없는 경우(예: 해시가 되었기 때문에) 각 파일에서 호스트에 대한 모든 일치하는 항목을 찾아 위 알고리즘을 근사해야 합니다: 파일에 호스트에 대한 항목이 있는 경우 그 중 하나는 일치해야 하며, 호출자는 이전 파일에 해당 호스트에 대한 항목이 없을 경우에만 추가 알려진 호스트 파일을 계속 검색해야 합니다.
NetworkOptions.ssh_known_hosts_file
— Functionssh_known_hosts_file() :: String
ssh_known_hosts_file()
함수는 SSH 연결을 위한 원격 서버의 신원을 설정할 때 사용해야 하는 SSH 알려진 호스트 파일의 단일 경로를 반환합니다. 실제로 존재하는 ssh_known_hosts_files
에 의해 반환된 첫 번째 경로를 반환합니다. 여러 알려진 호스트 파일을 확인할 수 있는 호출자는 대신 ssh_known_hosts_files
를 사용하고 해당 함수의 문서에 설명된 대로 반환된 모든 파일에서 호스트 일치를 찾아야 합니다.
NetworkOptions.verify_host
— Functionverify_host(url::AbstractString, [transport::AbstractString]) :: Bool
verify_host
함수는 TLS 또는 SSH와 같은 보안 전송을 통해 통신할 때 호스트의 신원을 확인해야 하는지 여부를 호출자에게 알려줍니다. url
인수는 다음과 같을 수 있습니다:
proto://
로 시작하는 적절한 URLssh
스타일의 일반 호스트 이름 또는user@
로 접두사가 붙은 호스트 이름- 위와 같은
scp
스타일의 호스트 뒤에:
와 경로 위치가 오는 경우
각 경우에 대해 호스트 이름 부분이 파싱되고, 확인 여부에 대한 결정은 입력 URL의 다른 요소가 아닌 호스트 이름만을 기반으로 이루어집니다. 특히, URL의 프로토콜은 중요하지 않습니다(아래에서 더 설명).
transport
인수는 쿼리가 어떤 종류의 전송에 관한 것인지를 나타냅니다. 현재 알려진 값은 SSL
/ssl
(별칭 TLS
/tls
) 및 SSH
/ssh
입니다. 전송이 생략되면, 쿼리는 호스트 이름이 전송에 관계없이 확인되지 않아야 하는 경우에만 true
를 반환합니다.
호스트 이름은 transport
가 제공되는지 여부와 그 값에 따라 관련 환경 변수의 호스트 패턴과 일치합니다:
JULIA_NO_VERIFY_HOSTS
— 어떤 전송에 대해서도 확인되지 않아야 하는 호스트JULIA_SSL_NO_VERIFY_HOSTS
— SSL/TLS에 대해 확인되지 않아야 하는 호스트JULIA_SSH_NO_VERIFY_HOSTS
— SSH에 대해 확인되지 않아야 하는 호스트JULIA_ALWAYS_VERIFY_HOSTS
— 항상 확인해야 하는 호스트
각 변수의 값은 다음 구문을 가진 호스트 이름 패턴의 쉼표로 구분된 목록입니다 — 각 패턴은 .
에서 부분으로 나뉘며 각 부분은 다음 중 하나여야 합니다:
- 하나 이상의 ASCII 문자, 숫자, 하이픈 또는 밑줄로 구성된 리터럴 도메인 이름 구성 요소(법적 호스트 이름의 일부는 아니지만 때때로 사용됨). 리터럴 도메인 이름 구성 요소는 자신만 일치합니다.
**
, 이는 0개 이상의 도메인 이름 구성 요소와 일치합니다.*
, 이는 임의의 하나의 도메인 이름 구성 요소와 일치합니다.
이 변수 중 하나의 패턴 목록에 대해 호스트 이름을 일치시킬 때, 호스트 이름은 .
에서 구성 요소로 나뉘고 그 단어의 순서는 패턴과 일치합니다: 리터럴 패턴은 해당 값으로 정확히 하나의 호스트 이름 구성 요소와 일치합니다; *
패턴은 임의의 값으로 정확히 하나의 호스트 이름 구성 요소와 일치합니다; **
패턴은 임의의 수의 호스트 이름 구성 요소와 일치합니다. 예를 들어:
**
는 모든 호스트 이름과 일치합니다.**.org
는.org
최상위 도메인에 있는 모든 호스트 이름과 일치합니다.example.com
은 정확히 호스트 이름example.com
과만 일치합니다.*.example.com
은api.example.com
과 일치하지만example.com
이나v1.api.example.com
과는 일치하지 않습니다.**.example.com
은example.com
자체,api.example.com
및v1.api.example.com
을 포함하여example.com
아래의 모든 도메인과 일치합니다.