从 subjectaltname
iis7站长之家 (oid = 2.5.29.17) 中获取一个主体替换名称的不可变集合。
subjectaltname
扩展的 asn.1 定义如下:
subjectaltname ::= generalnames
generalnames :: = sequence size (1..max) of generalname
generalname ::= choice {
othername [0] othername,
rfc822name [1] ia5string,
dnsname [2] ia5string,
x400address [3] oraddress,
directoryname [4] name,
edipartyname [5] edipartyname,
uniformresourceidentifier [6] ia5string,
ipaddress [7] octet string,
registeredid [8] object identifier}
如果此证书不包含 subjectaltname
扩展,则返回 null
。否则返回一个 collection
,其中的项表示该扩展中所包括的每个 generalname
。每一项都是一个 list
,该 list 的第一项是一个 integer
(0-8,表示名称类型),第二项是一个 string
或 byte 数组(分别为 string 或 asn.1 der 编码形式,表示名称)。
rfc 822、dns 和 uri 名称是使用这些类型已定义的 string 格式(受 rfc 2459 中所包括的限制的影响)以 string
的形式返回的。使用四点表示法(dotted quad notation)返回 ipv4 地址名。以 "a1:a2:...:a8" 的形式返回 ipv6 地址名,其中 a1-a8 是十六进制值,表示该地址的 8 个 16 位部分。以 string
形式返回 oid 名称,该字符串用一系列句点分隔的非负整数来表示。以 rfc 2253 string 格式返回目录名(标识名)。没有为 othernames、x.400 名、edi 方名或其他所有类型的名称定义标准的 string 格式。它们是以 byte 数组的形式返回的,其中包含 asn.1 der 编码形式的名称。
注意,返回的 collection
可能包含多个相同类型的名称。另外还要注意,返回的 collection
是不可变的,并且将复制 byte 数组中所包含的所有项,以防止后续的修改。
java 2 platform standard edition 的 1.4 版本中添加了此方法。为了维持与现有服务提供者的后向兼容性,没有 abstract
此方法,并且它提供了一个默认实现。子类应该通过正确的实现重写此方法。
- 返回:
- 主体替换名称的不可变
collection
(或者为 null
)
- 抛出:
certificateparsingexception
- 如果无法对该扩展进行解码- 从以下版本开始:
- 1.4