public abstract class X509Certificate extends Certificate
基本的X.509格式的ISO / IEC和ANSI X9定义,下面描述的ASN。1:
证书::=序列tbscertificate tbscertificate,algorithmidentifier签名算法,签名位字符串
这些证书被广泛用于支持在互联网安全系统中的身份验证和其他功能。常见的应用包括隐私增强邮件(PEM),传输层安全(SSL),代码为可信软件分发签名和安全电子交易(SET)。
这些证书的管理和保证的证书颁发机构(CA)。CAS是通过将数据创建证书的X.509标准的格式,然后进行数字签名,数据服务。中国科学院作为受信任的第三方,使彼此之间没有直接的知识的校长之间的介绍。钙证书是由自己签署的,或由一些其他的钙,如一个“根”约。
ASN的tbsCertificate
1定义:
tbscertificate::=序列{版本[ 0 ]明确的版本默认V1,序列号certificateserialnumber,签名algorithmidentifier,发行人名称,效力,课题名称,subjectpublickeyinfo subjectpublickeyinfo,}
下面是示例代码实例化一个X.509证书:
InputStream流=新的输入(“filename证书”);X509Certificate证书= X509Certificate getInstance(河道);河道内。();或
字节[] certdata = <证书读取一个文件,说> X509Certificate证书= 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 SE证书班位于java.security.cert。
Certificate
,
X509Extension
,
security properties
Constructor and Description |
---|
X509Certificate() |
Modifier and Type | Method and Description |
---|---|
abstract void |
checkValidity()
检查证书是否有效。
|
abstract void |
checkValidity(Date date)
检查指定日期是否在证书有效期内。
|
static X509Certificate |
getInstance(byte[] certData)
实例化和初始化它X509Certificate对象,用指定的字节数组。
|
static X509Certificate |
getInstance(InputStream inStream)
实例化和初始化它的X509Certificate对象与数据从输入流中读取
inStream 。
|
abstract Principal |
getIssuerDN()
得到
issuer (发行人可分辨名称)从证书的价值。
|
abstract Date |
getNotAfter()
从该证书的有效期有
notAfter 日期。
|
abstract Date |
getNotBefore()
从该证书的有效期有
notBefore 日期。
|
abstract BigInteger |
getSerialNumber()
从获取证书的
serialNumber 价值。
|
abstract String |
getSigAlgName()
获取证书签名算法的签名算法的名称。
|
abstract String |
getSigAlgOID()
从获取证书的签名算法OID的字符串。
|
abstract byte[] |
getSigAlgParams()
从该证书的签名算法得到的的的的的的的的的编码的签名算法参数。
|
abstract Principal |
getSubjectDN()
得到
subject (主题可分辨名称)从证书的价值。
|
abstract int |
getVersion()
得到
version (版本号)从证书的价值。
|
equals, getEncoded, getPublicKey, hashCode, toString, verify, verify
public static final X509Certificate getInstance(InputStream inStream) throws CertificateException
inStream
。实施(X509Certificate是一个抽象类)是由类指定的
cert.provider.x509v1
安全属性提供的值。
注:只有一个的德编码证书预计将在输入流。同时,所有的子类必须提供一个构造函数X509Certificate的形式:
public <subClass>(InputStream inStream) ...
inStream
-输入流中的数据被读取初始化证书。
CertificateException
-如果一个类初始化或证书解析错误发生。
public static final X509Certificate getInstance(byte[] certData) throws CertificateException
cert.provider.x509v1
安全属性提供的值。
注:所有的X509Certificate类必须提供构造函数的形式:
public <subClass>(InputStream inStream) ...
certData
-含Der字节数组编码的证书。
certData
X509Certificate对象初始化的数据。
CertificateException
-如果一个类初始化或证书解析错误发生。
public abstract void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException
有效期由两个日期/时间值组成:证书有效期的第一个和最后一个日期(和时间)。它是定义在ASN。1:
效力有效性::=序列先certificatevaliditydate,之后,certificatevaliditydate }certificatevaliditydate::=选择{UTCTime UTCTime,generaltime generalizedtime }
CertificateExpiredException
如果证书已过期。
CertificateNotYetValidException
-如果证书尚未生效。
public abstract void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException
date
-日期对照看看这个证书是有效的在那个日期/时间。
CertificateExpiredException
如果证书已过期,相对于
date
提供。
CertificateNotYetValidException
-如果证书没有有效的
date
提供。
checkValidity()
public abstract int getVersion()
version
(版本号)从证书的价值。ASN。这1的定义是:
版本[ 0 ]明确的版本默认V1版本::=整数{ V1,V2(0)(1),V3(2)}
public abstract BigInteger getSerialNumber()
serialNumber
价值。序列号是由证书颁发机构分配给每个证书的整数。它必须是唯一的每一个由一个给定的证书颁发的证书(即,发行人的名称和序列号确定一个唯一的证书)。ASN。这1的定义是:
序列号certificateserialnumberCertificateSerialNumber::=整数
public abstract Principal getIssuerDN()
issuer
(发行人可分辨名称)从证书的价值。发行人名称标识签名(并颁发)证书的实体。
发行人名称字段包含一个X.500可分辨名称(DN)。ASN。此1定义:
发行人名称名称::=选择rdnsequence } {rdnsequence::=序列relativedistinguishednamerelativedistinguishedname::=套attributevalueassertionattributevalueassertion::=序列{AttributeType,属性值}AttributeType::=对象标识符属性值::=任何的
Name
描述了一个由属性层次的名称,如国家的名字,和对应的值,如美国。
AttributeValue
组件的类型是由
AttributeType
确定;一般来说这将是一个
directoryString
。一个
directoryString
通常是一个
PrintableString
,
TeletexString
或
UniversalString
。
public abstract Principal getSubjectDN()
getIssuerDN()
public abstract Date getNotBefore()
notBefore
日期。有关ASN. 1定义:
效力有效性::=序列先certificatevaliditydate,之后,certificatevaliditydate }certificatevaliditydate::=选择{UTCTime UTCTime,generaltime generalizedtime }
checkValidity()
public abstract Date getNotAfter()
notAfter
日期。看到有关ASN
getNotBefore
1定义。
checkValidity()
public abstract String getSigAlgName()
algorithmidentifier签名算法algorithmidentifier::=序列{算法对象标识符,参数定义的算法可选}-包含类型的值——注册用的——算法对象标识符值
该算法的名字是从algorithm
OID字符串确定。
public abstract String getSigAlgOID()
看到有关ASN getSigAlgName
1定义。
public abstract byte[] getSigAlgParams()
看到有关ASN getSigAlgName
1定义。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.