- java.lang.Object
-  
      - javax.security.cert.Certificate
-  
        - javax.security.cert.X509Certificate
 
 
-  
       
 @Deprecated(since="9") public abstract class X509Certificate extends Certificate Deprecated.Use the classes injava.security.certinstead.X.509 v1证书的抽象类。 这提供了访问X.509证书的所有版本1属性的标准方法。 通过此接口无法使用特定于X.509 v2或v3的属性。 未来的API演进将提供对完整X.509 v3属性的完全访问。基本的X.509格式由ISO / IEC和ANSI X9定义,并在下面的ASN.1中描述: Certificate ::= SEQUENCE { tbsCertificate TBSCertificate, signatureAlgorithm AlgorithmIdentifier, signature BIT STRING }这些证书广泛用于支持Internet安全系统中的身份验证和其他功能。 常见应用包括隐私增强邮件(PEM),传输层安全(SSL),可信软件分发的代码签名和安全电子交易(SET)。 这些证书由证书颁发机构 (CA)管理和担保。 CA是通过将数据置于X.509标准格式然后对该数据进行数字签名来创建证书的服务。 CA充当可信赖的第三方,在彼此之间没有直接了解的主体之间进行介绍。 CA证书可以由自己签名,也可以由其他CA(例如“根”CA)签名。 tbsCertificate的ASN.1定义是:TBSCertificate ::= SEQUENCE { version [0] EXPLICIT Version DEFAULT v1, serialNumber CertificateSerialNumber, signature AlgorithmIdentifier, issuer Name, validity Validity, subject Name, subjectPublicKeyInfo SubjectPublicKeyInfo, }以下是实例化X.509证书的示例代码: InputStream inStream = new FileInputStream("fileName-of-cert"); X509Certificate cert = X509Certificate.getInstance(inStream); inStream.close();要么byte[] certData = <certificate read from a file, say> X509Certificate cert = X509Certificate.getInstance(certData);在任何一种情况下,实例化X.509证书的代码都会查询 cert.provider.x509v1安全属性的值以查找实际实现或实例化默认实现。cert.provider.x509v1属性设置为X.509的默认实现,例如:cert.provider.x509v1=com.sun.security.cert.internal.x509.X509V1CertImpl必须更改此 cert.provider.x509v1属性的值以实例化另一个实现。 如果未设置此安全属性,则将使用默认实现。 目前,由于对安全属性的访问可能存在安全限制,因此在类初始化时查找并缓存此值,如果无法访问安全属性,则会在默认实现上回退。注意:程序包 javax.security.cert的类用于与早期版本的Java安全套接字扩展(JSSE)兼容。 相反,新应用程序应使用位于java.security.cert的标准Java SE证书类。- 从以下版本开始:
- 1.4
- 另请参见:
-  
         Certificate,X509Extension,security properties
 
-  
        
       -  
             构造方法摘要构造方法 构造器 描述 X509Certificate()已过时。
 -  
             方法摘要所有方法 静态方法 实例方法 抽象方法 具体的方法 弃用的方法 变量和类型 方法 描述 abstract voidcheckValidity()已过时。检查证书当前是否有效。abstract voidcheckValidity(Date date)已过时。检查指定日期是否在证书的有效期内。static X509CertificategetInstance(byte[] certData)已过时。实例化X509Certificate对象,并使用指定的字节数组对其进行初始化。static X509CertificategetInstance(InputStream inStream)已过时。实例化X509Certificate对象,并使用从输入流inStream读取的数据对其进行初始化。abstract PrincipalgetIssuerDN()已过时。从证书中获取issuer(颁发者专有名称)值。abstract DategetNotAfter()已过时。从证书的有效期获取notAfter日期。abstract DategetNotBefore()已过时。从证书的有效期获取notBefore日期。abstract BigIntegergetSerialNumber()已过时。从证书中获取serialNumber值。abstract StringgetSigAlgName()已过时。获取证书签名算法的签名算法名称。abstract StringgetSigAlgOID()已过时。从证书中获取签名算法OID字符串。abstract byte[]getSigAlgParams()已过时。从此证书的签名算法中获取DER编码的签名算法参数。abstract PrincipalgetSubjectDN()已过时。从证书中获取subject(主题专有名称)值。abstract intgetVersion()已过时。从证书中获取version(版本号)值。-  
               声明方法的类 javax.security.cert.Certificateequals, getEncoded, getPublicKey, hashCode, toString, verify, verify
 
-  
               
 
-  
             
-  
        
       -  
             方法详细信息-  getInstancepublic static final X509Certificate getInstance(InputStream inStream) throws CertificateException Deprecated.实例化X509Certificate对象,并使用从输入流inStream读取的数据对其进行初始化。 实现(X509Certificate是一个抽象类)由指定为cert.provider.x509v1安全属性值的类提供。注意:预计输入流中只有一个DER编码的证书。 此外,所有X509Certificate子类都必须提供以下形式的构造函数: public <subClass>(InputStream inStream) ...- 参数
-  
              inStream- 包含要读取的数据以初始化证书的输入流。
- 结果
- 使用输入流中的数据初始化的X509Certificate对象。
- 异常
-  
              CertificateException- 如果发生类初始化或证书解析错误。
 
 -  getInstancepublic static final X509Certificate getInstance(byte[] certData) throws CertificateException Deprecated.实例化X509Certificate对象,并使用指定的字节数组对其进行初始化。 实现(X509Certificate是一个抽象类)由指定为cert.provider.x509v1安全属性值的类提供。注意:所有X509Certificate子类都必须提供以下形式的构造函数: public <subClass>(InputStream inStream) ...- 参数
-  
              certData- 包含DER编码证书的字节数组。
- 结果
- 
               使用 
              certData的数据初始化的X509Certificate对象。
- 异常
-  
              CertificateException- 如果发生类初始化或证书解析错误。
 
 -  checkValiditypublic abstract void checkValidity() throws CertificateExpiredException, CertificateNotYetValidExceptionDeprecated.检查证书当前是否有效。 如果当前日期和时间在证书中给出的有效期内。有效期包括两个日期/时间值:证书有效的第一个和最后一个日期(和时间)。 它在ASN.1中定义为: validity Validity Validity ::= SEQUENCE { notBefore CertificateValidityDate, notAfter CertificateValidityDate } CertificateValidityDate ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }- 异常
-  
              CertificateExpiredException- 如果证书已过期。
-  
              CertificateNotYetValidException- 如果证书尚未生效。
 
 -  checkValiditypublic abstract void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException Deprecated.检查指定日期是否在证书的有效期内。 换句话说,这确定证书在指定的日期/时间是否有效。- 参数
-  
              date- 要检查的日期,以查看此证书在该日期/时间是否有效。
- 异常
-  
              CertificateExpiredException- 如果证书已提供相对于所提供的date。
-  
              CertificateNotYetValidException- 如果证书对于提供的date尚未生效。
- 另请参见:
-  
              checkValidity()
 
 -  getVersionpublic abstract int getVersion() Deprecated.从证书中获取version(版本号)值。 ASN.1的定义是:version [0] EXPLICIT Version DEFAULT v1 Version ::= INTEGER { v1(0), v2(1), v3(2) }- 结果
- ASN.1编码的版本号,即0,1或2。
 
 -  getSerialNumberpublic abstract BigInteger getSerialNumber() Deprecated.从证书中获取serialNumber值。 序列号是证书颁发机构为每个证书分配的整数。 对于给定CA颁发的每个证书,它必须是唯一的(即,颁发者名称和序列号标识唯一证书)。 ASN.1的定义是:serialNumber CertificateSerialNumber CertificateSerialNumber ::= INTEGER- 结果
- 序列号。
 
 -  getIssuerDNpublic abstract Principal getIssuerDN() Deprecated.从证书中获取issuer(颁发者专有名称)值。 颁发者名称标识签署(和颁发)证书的实体。颁发者名称字段包含X.500可分辨名称(DN)。 ASN.1的定义是: issuer Name Name ::= CHOICE { RDNSequence } RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET OF AttributeValueAssertion AttributeValueAssertion ::= SEQUENCE { AttributeType, AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANYName描述了由属性(例如国家/地区名称)和相应值(例如US)组成的分层名称。 的类型的AttributeValue分量由确定AttributeType; 一般情况下,它将是directoryString。 甲directoryString通常之一PrintableString,TeletexString或UniversalString。- 结果
- 名称为发行人专有名称的委托人。
 
 -  getSubjectDNpublic abstract Principal getSubjectDN() Deprecated.- 结果
- 名称为主题名称的委托人。
- 另请参见:
-  
              getIssuerDN()
 
 -  getNotBeforepublic abstract Date getNotBefore() Deprecated.从证书的有效期获取notBefore日期。 相关的ASN.1定义是:validity Validity Validity ::= SEQUENCE { notBefore CertificateValidityDate, notAfter CertificateValidityDate } CertificateValidityDate ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }- 结果
- 有效期的开始日期。
- 另请参见:
-  
              checkValidity()
 
 -  getNotAfterpublic abstract Date getNotAfter() Deprecated.从证书的有效期获取notAfter日期。 有关ASN.1定义,请参见getNotBefore。- 结果
- 有效期的结束日期。
- 另请参见:
-  
              checkValidity()
 
 -  getSigAlgNamepublic abstract String getSigAlgName() Deprecated.获取证书签名算法的签名算法名称。 一个例子是字符串“SHA-1 / DSA”。 ASN.1的定义是:signatureAlgorithm AlgorithmIdentifier AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } -- contains a value of the type -- registered for use with the -- algorithm object identifier value算法名称由 algorithmOID字符串确定。- 结果
- 签名算法名称。
 
 -  getSigAlgOIDpublic abstract String getSigAlgOID() Deprecated.从证书中获取签名算法OID字符串。 OID由一组由句点分隔的正整数表示。 例如,字符串“1.2.840.10040.4.3”根据PKIX部分I标识具有DSA签名算法的SHA-1。有关ASN.1定义,请参见 getSigAlgName。- 结果
- 签名算法OID字符串。
 
 -  getSigAlgParamspublic abstract byte[] getSigAlgParams() Deprecated.- 结果
- the DER-encoded signature algorithm parameters, or null if no parameters are present.
 
 
-  
 
-