从 SubjectAltName 扩展 (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)抛出:从以下版本开始:
1.4