网络选项
# *`NetworkOptions.ca_roots`*-函数
ca_roots() :: Union{Nothing, String}
该 ca_roots() 函数告诉调用者在哪里(如果在任何地方)找到PEM编码的证书颁发机构根的文件或目录。 默认情况下,在内置TLS引擎知道如何使用系统内置的证书验证机制验证主机的Windows和macOS等系统上,此函数将返回 什么都没有. 在经典UNIX系统(不包括macOS)上,根证书通常存储在 /等:将搜索当前UNIX系统的常用位置,如果存在这些路径之一,则返回;如果这些典型的根证书路径都不存在,则返回与Julia捆绑在一起的一组根证书的路径。
返回的默认值 ca_roots() 可以通过设置复盖 JULIA_SSL_CA_ROOTS_PATH, SSL_CERT_DIR,或 SSL_CERT_文件 环境变量,在这种情况下,此函数将始终返回设置的第一个变量的值(无论路径是否存在)。 如果 JULIA_SSL_CA_ROOTS_PATH 被设置为空字符串,则其他变量被忽略(好像未设置);如果其他变量被设置为空字符串,则它们的行为是如果它们未设置。
# *`NetworkOptions.ca_roots_path`*-函数
ca_roots_path() :: String
该 ca_roots_path() 功能类似于 ca_roots() 功能,除了它总是返回PEM编码的证书颁发机构根的文件或目录的路径。 当在Windows或macOS等系统(其中系统根证书未存储在文件系统中)上调用时,它当前将返回与Julia捆绑在一起的一组根证书的路径。 (将来,此函数可能会从系统中提取根证书并将其保存到将返回路径的文件中。)
如果可以配置一个使用TLS的库来使用通常更可取的系统证书:即最好使用 ca_roots() 哪些返回 什么都没有 指示应使用系统证书。 该 ca_roots_path() 函数只应在配置库时使用,这些库为根证书的文件或目录提供了路径。
返回的默认值 ca_roots_path() 可以通过设置复盖 JULIA_SSL_CA_ROOTS_PATH, SSL_CERT_DIR,或 SSL_CERT_文件 环境变量,在这种情况下,此函数将始终返回设置的第一个变量的值(无论路径是否存在)。 如果 JULIA_SSL_CA_ROOTS_PATH 被设置为空字符串,则其他变量被忽略(好像未设置);如果其他变量被设置为空字符串,则它们的行为是如果它们未设置。
# *`网络选项。ssh_迪尔`*-函数
ssh_dir() :: String
该 ssh_dir() 函数返回目录的位置 ssh 程序保持/查找配置文件。 默认情况下,这是 ~/.ssh 但是这可以通过设置环境变量来复盖 SSH_迪尔.
# *`网络选项。ssh_key_通`*-函数
ssh_key_pass() :: String
该 ssh_key_pass() 函数返回环境变量的值 SSH_KEY_通 如果设置或 什么都没有 如果没有设置。 将来,这可能能够通过其他方式找到密码,例如安全系统存储,因此需要密码来解密SSH私钥的软件包应该使用此API,而不是直接检查环境变量,以便在添加时自动获得此类功能。
# *`网络选项。ssh_key_name`*-函数
ssh_key_name() :: String
该 ssh_key_name() 函数返回SSH在建立连接时应使用的密钥文件的基本名称。 通常没有理由直接调用此函数,库通常应该使用 ssh_key_path 和 ssh_pub_key_path 函数以获得完整路径。 如果环境变量 SSH_KEY_NAME 如果设置,则此函数返回该值;否则返回 id_rsa 默认情况下。
# *`网络选项。ssh_key_path`*-函数
ssh_key_path() :: String
该 ssh_key_path() 函数返回应该用于SSH连接的SSH私钥文件的路径。 如果 SSH_KEY_PATH 环境变量被设置,然后它将返回该值。 否则默认返回
joinpath(ssh_dir(), ssh_key_name())
此默认值又取决于 SSH_迪尔 和 SSH_KEY_NAME 环境变量。
# *`网络选项。ssh_pub_key_path`*-函数
ssh_pub_key_path() :: String
该 ssh_pub_key_path() 函数返回应该用于SSH连接的SSH公钥文件的路径。 如果 SSH_PUB_KEY_PATH 环境变量被设置,然后它将返回该值。 如果没有设置,但是 SSH_KEY_PATH 被设置,它将返回该路径与 .酒吧 后缀追加。 如果两者都没有设置,则默认返回
joinpath(ssh_dir(), ssh_key_name() * ".pub")
此默认值又取决于 SSH_迪尔 和 SSH_KEY_NAME 环境变量。
# *`网络选项。ssh_known_hosts_files`*-函数
ssh_known_hosts_files() :: Vector{String}
该 ssh_known_hosts_files() 函数返回SSH已知主机文件的路径向量,这些文件在为SSH连接建立远程服务器的标识时应使用。 默认情况下,此函数返回
[joinpath(ssh_dir(), "known_hosts"), bundled_known_hosts]
哪里 捆绑式_known_hosts 是与此包捆绑在一起的已知主机文件的副本的路径(包含 github.com 和 gitlab.com). 如果环境变量 SSH_KNOWN_HOSTS_FILES 然而,它的值被分割成 : 字符(或上 ; 在Windows上),并返回此路径向量。 如果此向量的任何组件为空,则会将其展开为默认的已知主机路径。
使用的软件包 ssh_known_hosts_files() 理想情况下,应该通过比较主机名和密钥类型来寻找匹配的条目,考虑到任何匹配的文件中的第一个条目是主机的最终标识。 如果调用者无法比较密钥类型(例如,因为它已经散列),那么它必须通过在每个文件中查找主机的所有匹配条目来近似上述算法:如果一个文件有主机的任何条目,那么其中一个必须匹配;调用者只应继续搜索更多已知的主机文件,如果在较早的文件中没有相关主机的条目。
# *`网络选项。ssh_known_hosts_file`*-函数
ssh_known_hosts_file() :: String
该 ssh_known_hosts_file() 函数返回SSH已知主机文件的单个路径,该路径在为SSH连接建立远程服务器的标识时应使用。 它返回返回的第一个路径 ssh_known_hosts_files 这确实存在。 可以查看多个已知主机文件的呼叫者应使用 ssh_known_hosts_files 而是在返回的所有文件中查找主机匹配,如该函数的文档中所述。
# *`网络选项。验证_主机`*-函数
verify_host(url::AbstractString, [transport::AbstractString]) :: Bool
该 验证_主机 函数告诉调用者在通过TLS或SSH等安全传输进行通信时是否应该验证主机的身份。 该 网址 争论可能是:
-
一个正确的URL盯着
原,原:// -
一个
ssh-样式裸主机名或主机名前缀用户@ -
一个
scp-风格主机如上,其次是:和路径位置
在每种情况下,主机名部分都被解析出来,并且关于是否验证的决定仅基于主机名,而不是关于输入URL的任何其他内容。 特别是,URL的协议并不重要(下面更多)。
该 运输业 参数指示查询所涉及的传输类型。 目前已知的值是 SSL证书/ssl证书 (别名 TLS/tls)和 SSH/ssh. 如果省略传输,查询将返回 真的 仅当无论传输如何,都不应验证主机名时。
主机名与相关环境变量中的主机模式匹配,具体取决于是否 运输业 提供了什么,它的价值是什么:
* JULIA_NO_VERIFY_HOSTS --不应验证任何传输的主机
* JULIA_SSL_NO_VERIFY_HOSTS --不应为SSL/TLS验证的主机
* JULIA_SSH_NO_VERIFY_HOSTS --不应为SSH验证的主机
* JULIA_ALWAYS_VERIFY_HOSTS --应始终验证的主机
每个变量的值都是一个逗号分隔的主机名模式列表,其语法如下—每个模式都在 . 成部分,每个部分必须:
-
由一个或多个ASCII字母,数字,连字符或下划线组成的字面域名组件(技术上不是合法主机名的一部分,但有时会使用)。 字面域名组件仅与自身匹配。
-
A
**,其匹配零个或多个域名组件。 -
A
*,与任何一个域名组件相匹配。
将主机名与其中一个变量中的模式列表进行匹配时,主机名将被拆分为 . 到组件中,该单词序列与模式匹配:一个字面模式与一个主机名组件与该值匹配; * 模式与一个具有任何值的主机名组件完全匹配; ** 模式匹配任意数量的主机名组件。 例如:
* ** 匹配任何主机名
* **.org 匹配任何主机名在 .org 顶级域名
* example.com 只匹配确切的主机名 example.com
* *。example.com 比赛 api.example.com 但不是 example.com 或 v1.api.example.com
* **。example.com+ 匹配下的任何域 example.com,包括 example.com 本身, api.example.com 和 v1.api.example.com