JSSE笔记
n TrustManager
信任管理器
n TrustManagerFactory
信任管理器工厂
getAlgorithm获取算法,默认算法
getInstance:算法,提供者
getProvider:
init:根据keystore或管理器工厂参数
n X509ThustManager
X509信任管理器
CheckClientTrusted:
输入的是证书链和认证类型,如RSA,注意大小写,由客户端的SSLSocket检查是否信任。
CheckServerThusted:
输入证书链和认证类型。如RSA,DHE_DSS。
getAcceptedIssuers():
返回信任的证书。
n X509Certificate
X509证书
格式:
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signature BIT STRING }
由证书,签名和签名算法构成。
广泛用于隐私加强邮件,SSL,代码签名,SET安全电子交易。
证书由CA管理。
其中TBSCertificate的格式是:
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version must be v2 or v3
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version must be v2 or v3
extensions [3] EXPLICIT Extensions OPTIONAL
-- If present, version must be v3
}
初始化X509证书:
InputStream inStream = new FileInputStream("fileName-of-cert");
CertificateFactory cf = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate)cf.generateCertificate(inStream);
inStream.close();
getIssuerDN:发行者名字
n KeyStore
密钥存储,代表内存中密钥和证书的集合。
管理两种类型:
(1) 密钥项
(2) 信任的证书项
公钥证书。
Keystore中的每个输入项由alias别名标志。
两种类型来请求keystore对象:
根据类型
KeyStore ks = KeyStore.getInstance("JKS");
根据类型和包提供者:
KeyStore ks = KeyStore.getInstance("JKS", "SUN");
在访问KeyStore之前,必须先用load。
在load中输入空输入流可以创建空KeyStore。
KeyStore提供了load和store两种方法。
n SSLContext
SSL上下文
SSL上下文的作用是getSocketFactory。
SSL上下文的实例本身可以通过协议和provider取得。
然后根据密钥管理器、信任管理器,安全随机数来初始化。
n KeyManager
密钥管理器,接口,空方法
由KeyManagerFactory来创建。
实现类X509密钥管理器:
n KeyManagerFactory
密钥管理器工厂
根据算法、提供者来取得实例。
取得实例后可以获取一组密钥管理器。
根据KeyStore和密码来初始化密钥管理器工厂。
n X509密钥管理器
选择客户端别名
选择服务器别名
获取证书链
获取客户端别名
获取服务器别名
获取私钥
n
在conn.flushRequestOutputStream();的时候检查server是否信任的。
n Principal
负责人
n 证书打印出来的样子
[
[
Version: V3
Subject: CN=www.18ebank.com, OU=SFESC, O=CFCA Operation CA, C=CN
Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5
Key: SunJSSE RSA public key:
public exponent:
010001
modulus:
c6ca4f9a 1ff3a3cd df60de92 f8116451 483479f0 7401f430 c403e2f4 b3e613ce
15f30d7c b2627996 dc655b49 1edb34d9 6c8afaa8 3c55fd4a ed7fca8f 2ee3bfd4
06559f42 5f787ba7 57e51041 27fab1a4 f4628652 63f2db78 396afd70 a7b1ad6b
7698e74c d47458d5 0c26c226 cef151d1 5ffc619f a263f41b 56aad051 27ba66d3
Validity: [From: Fri Nov 26 16:32:30 CST 2004,
To: Sun Nov 26 17:02:30 CST 2006]
Issuer: O=CFCA Operation CA, C=CN
SerialNumber: [ 3fc64dca]
Certificate Extensions: 11
[1]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
[RFC822Name: zhangpeng@szcb.com]]
[2]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: C3 27 C6 36 68 C8 27 65 24 87 AF 91 A7 4B 26 33 .'.6h.'e$....K&3
0010: 02 E5 1A E9 ....
]
]
[3]: ObjectId: 1.2.840.113533.7.65.0 Criticality=false
Extension unknown: DER encoded OCTET string =
0000: 04 0C 30 0A 1B 04 56 36 2E 30 03 02 03 A8 ..0...V6.0....
[4]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: AC 87 6A 7D 77 9E A4 30 E6 58 CD C1 04 40 D5 23 ..j.w..0.X...@.#
0010: AA AC 59 46 ..YF
]
]
[5]: ObjectId: 2.5.29.16 Criticality=false
PrivateKeyUsage: [
From: Fri Nov 26 16:32:30 CST 2004, To: Sun Nov 26 17:02:30 CST 2006]
[6]: ObjectId: 2.16.840.1.113730.1.1 Criticality=false
NetscapeCertType [
SSL client
S/MIME
]
[7]: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
CA:false
PathLen: undefined
]
[8]: ObjectId: 2.16.840.1.113730.1.3 Criticality=false
Extension unknown: DER encoded OCTET string =
0000: 04 3D 16 3B 63 6C 69 65 6E 74 63 67 69 2E 65 78 .=.;clientcgi.ex
0010: 65 3F 61 63 74 69 6F 6E 3D 63 68 65 63 6B 52 65 e?action=checkRe
0020: 76 6F 63 61 74 69 6F 6E 26 26 43 52 4C 3D 63 6E vocation&&CRL=cn
0030: 3D 43 52 4C 37 32 37 26 73 65 72 69 61 6C 3D =CRL727&serial=
[9]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
[DistributionPoint:
[CN=CRL727, O=CFCA Operation CA, C=CN]
]]
[10]: ObjectId: 2.16.840.1.113730.1.2 Criticality=false
Extension unknown: DER encoded OCTET string =
0000: 04 1C 16 1A 68 74 74 70 73 3A 2F 2F 53 49 54 45 ....https://SITE
0010: 5F 4E 41 4D 45 2F 63 64 61 2D 63 67 69 2F _NAME/cda-cgi/
[11]: ObjectId: 2.5.29.15 Criticality=false
KeyUsage [
DigitalSignature
Non_repudiation
Key_Encipherment
]
]
Algorithm: [SHA1withRSA]
Signature:
0000: 00 4D E6 17 35 CE 31 84 CB 68 7C 68 19 85 7E EC .M..5.1..h.h....
span
发表评论
- 浏览: 64418 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
最新评论
-
JavaEye之路
引用我也很喜欢JavaEye,比CSDN好 CSDN太杂了规模大了能不大而全吗? ...
-- by Sam1860 -
JavaEye之路
我在这,随便说点啥,博客,论坛,都说我应该是一个新手的帖子。不过我还是呆在这。反 ...
-- by saharabear -
我是穷忙族
-- by lbyzx123 -
JavaEye之路
javaeye目前的问题: 1,缺乏一个好的盈利模式,商业化运作 2,技术定位 ...
-- by kimmking -
JavaEye之路
我也很喜欢JavaEye,比CSDN好 CSDN太杂了
-- by lovefly_zero






评论排行榜