- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SSL连接中如何通过jsp编程读取读取客户端证书
通过JSP在SSL连接中读取数字证书
概述
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息和公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUT X.509国际标准。X.509目前有三个版本:V1、V2和V3X.509 V1和V2证书所包含的主要内容如下: 证书版本号(Version):版本号指明X.509证书的格式版本,现在的值可以为0、1、2,也为将来的版本进行了预定义。证书序列号(SerialNumber):序列号指定由CA分配给证书的唯一的数字型标识符。当证书被取消时,实际上是将此证书的序列号放入由CA签发的CRL中,这也是序列号唯一的原因。签名算法标识符(Signature):签名算法标识用来指定由CA签发证书时所使用的签名算法。算法标识符用来指定CA签发证书时所使用的公开密钥算法和hash算法,须向国际知名标准组织(如ISO)注册。签发机构名(Issuer):此域用来标识签发证书的CA的X.500 DN名字。包括国家、省市、地区、组织机构、单位部门和通用名。有效期(Validity):指定证书的有效期,包括证书开始生效的日期和时间以及失效的日期和时间。每次使用证书时,需要检查证书是否在有效期内。证书用户名(Subject):指定证书持有者的X.500唯一名字。包括国家、省市、地区、组织机构、单位部门和通用名,还可包含email地址等个人信息等证书持有者公开密钥信息(subjectPublicKeyInfo):证书持有者公开密钥信息域包含两个重要信息:证书持有者的公开密钥的值;公开密钥使用的算法标识符。此标识符包含公开密钥算法和hash算法。签发者唯一标识符(Issuer Unique Identifier):签发者唯一标识符在第2版加入证书定义中。此域用在当同一个X.500名字用于多个认证机构时,用一比特字符串来唯一标识签发者的X.500名字。可选。证书持有者唯一标识符(Subject Unique Identifier):持有证书者唯一标识符在第2版的标准中加入X.509证书定义。此域用在当同一个X.500名字用于多个证书持有者时,用一比特字符串来唯一标识证书持有者的X.500名字。可选。签名值(Issuers Signature):证书签发机构对证书上述内容的签名值。 X.509 V3证书是在v2的基础上一标准形式或普通形式增加了扩展项,以使证书能够附带额外信息。标准扩展是指由X.509 V3版本定义的对V2版本增加的具有广泛应用前景的扩展项,任何人都可以向一些权威机构,如ISO,来注册一些其他扩展,如果这些扩展项应用广泛,也许以后会成为标准扩展项。 –list
java中和证书相关的类
在开发中使用证书时,需要JDK中的三个类:Certificate、X509Certificate和CertificateFactory。这些类都封装在java.security.cert中。
java.security.cert.Certificate是封装证书的一个抽象类,常用的方法有getPublicKey()和verify()方法。
java.security.certX509.Certificate提供了处理X509证书的方法。
java.security.cert. CertificateFactory用来产生证书对象。
从证书文件读取数字证书
证书对象的属性:
Version 版本
Subject 主体
Signature algorithm 签名算法,默认下keytool产生证书使用SHA1with—DSA算法
Public key 公钥
Validity 有效期
Issuer 发布者,一般是自签证书,所以与主体相同
Serial number 序列号
算法和签名
为方便起见,假设证书文件(gao.cer)存放在d:盘目录下,下面一段jsp程序读该证书并输出版本,主体,有效期等信息
程序如下所示:
《CertInfo.java》
import java.io.*;
import java.security.cert.*;
import java.security.cert.CertificateFactory;
public class CertInfo
{ static String issue,after,before,subject;
static String serialno,signalg;
static int version;
publ
您可能关注的文档
- ABS塑料小件化学镀银及银层氯化的研制.docx
- Acupuncture Detoxification for Addiction Treatment:针刺戒毒脱瘾治疗.ppt
- Acute Pericarditis - Harvard University:急性心包炎-哈佛大学.ppt
- ADP_模型.ppt
- AGC液压系统的故障诊断.docx
- aia和fidic对比分析.pptx
- AGI与场内营养.ppt
- ANSYS Workbench 在后处理中显示对称云图.docx
- AoIP 播控技术.pptx
- AP Physics C – Mechanics:AP物理C–力学.doc
- 2024年中国钽材市场调查研究报告.docx
- 2024年中国不锈钢清洗车市场调查研究报告.docx
- 2024年中国分类垃圾箱市场调查研究报告.docx
- 2024年中国水气电磁阀市场调查研究报告.docx
- 2024年中国绿藻片市场调查研究报告.docx
- 2010-2023历年初中毕业升学考试(青海西宁卷)数学(带解析).docx
- 2010-2023历年福建厦门高一下学期质量检测地理卷.docx
- 2010-2023历年初中数学单元提优测试卷公式法(带解析).docx
- 2010-2023历年初中毕业升学考试(山东德州卷)化学(带解析).docx
- 2010-2023历年初中毕业升学考试(四川省泸州卷)化学(带解析).docx
文档评论(0)