当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


erlang pkix_verify_hostname(Cert, ReferenceIDs)用法及代码示例


pkix_verify_hostname(Cert, ReferenceIDs) -> boolean()
OTP 19.3
pkix_verify_hostname(Cert, ReferenceIDs, Options) -> boolean()
OTP 19.3
类型:
Cert = cert()
ReferenceIDs = referenceIDs()
Options = [{match_fun | fail_callback | fqdn_fun, function()}]

该函数检查呈现的标识符对等证书中的(例如主机名)至少与其中之一一致参考标识符客户端期望连接到的。该函数旨在在执行时添加为对等证书的额外客户端检查pkix_path_validation(Cert, CertChain, Options)

参看RFC 6125有关主机名验证的详细信息。这用户手册代码示例更详细地说明了这个函数。

选项 funs 说明如下:


match_fun
fun(ReferenceId::ReferenceId() | FQDN::string(),
    PresentedId::{dNSName,string()} | {uniformResourceIdentifier,string() |
                 {iPAddress,list(byte())} | {OtherId::atom()|oid(),term()}})
该函数替代了默认的主机名匹配规则。 fun 应该返回一个布尔值来判断参考 ID 和呈现的 ID 是否匹配。 match fun还可以返回第三个值,value,原子default,如果应用默认匹配规则。这使得可以用特殊情况来增强测试:
fun(....) -> true;   % My special case
   (_, _) -> default % all others falls back to the inherit tests
end

参看pkix_verify_hostname_match_fun/1对于采用协议名称作为参数并返回fun/2适合此选项并且重新定义匹配操作用户指南中的示例。
注意

以二进制形式给出的引用 ID 值将转换为字符串,并且 ip 引用可以以 "10.0.1.1" 或 "1234::5678:9012" 以及格式上的字符串格式给出国际网:ip_address()


fail_callback
如果匹配失败,则可能存在无论如何都应该接受证书的情况。以您选择接受过期证书的 Web 浏览器为例。此选项可以实现此类异常,但对于主机名除外。这fun/1当没有时被调用ReferenceID火柴。 fun 的返回值(aboolean()) 决定结果。如果true证书被接受,否则被拒绝。看"Pinning"证书在用户指南中。

fqdn_fun
此选项增强了从 URI 和其他参考 ID 中提取的主机名。例如,它可能是一个非常特殊且未标准化的 URI。 fun 将参考 ID 作为参数并返回以下之一:
  • 主机名
  • 原子default:将使用默认主机名提取函数
  • 原子undefined:无法提取主机名。 pkix_verify_hostname/3 将返回 false

例如,请参见主机名提取在用户指南中。

相关用法


注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 pkix_verify_hostname(Cert, ReferenceIDs) -> boolean()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。