通过代码示例学习Java安全技术(第4部分:数字证书的典型应用)

合集下载

常见数字证书类型

常见数字证书类型

常见数字证书类型1 数字证书1.1 概述 数字证书就是互联⽹通讯中标志通讯各⽅⾝份信息的⼀串数字,提供了⼀种在Internet上验证通信实体⾝份的⽅式,数字证书不是,⽽是⾝份认证机构盖在数字⾝份证上的⼀个章或印(或者说加在数字⾝份证上的⼀个签名)。

它是由权威机构——CA机构,⼜称为证书授权(Certificate Authority)中⼼发⾏的,⼈们可以在⽹上⽤它来识别对⽅的⾝份。

2 证书格式2.1 证书格式分类分为2⼤类:密钥库(含私钥,也可能有公钥)和公钥证书(仅含公钥)2.1.1 密钥库⽂件格式【Keystore】格式 : JKS扩展名 : .jks/.ks描述 : 【Java Keystore】密钥库的Java实现版本,provider为SUN特点 : 密钥库和私钥⽤不同的密码进⾏保护格式 : JCEKS扩展名 : .jce描述 : 【JCE Keystore】密钥库的JCE实现版本,provider为SUN JCE特点 : 相对于JKS安全级别更⾼,保护Keystore私钥时采⽤TripleDES格式 : PKCS12扩展名 : .p12/.pfx描述 : 【PKCS #12】个⼈信息交换语法标准特点 : 1、包含私钥、公钥及其证书2、密钥库和私钥⽤相同密码进⾏保护格式 : BKS扩展名 : .bks描述 : Bouncycastle Keystore】密钥库的BC实现版本,provider为BC特点 : 基于JCE实现格式 : UBER扩展名 : .ubr描述 : 【Bouncycastle UBER Keystore】密钥库的BC更安全实现版本,provider为BC2.2.2 证书⽂件格式【Certificate】格式 : DER扩展名 : .cer/.crt/.rsa描述 : 【ASN .1 DER】⽤于存放证书特点 : 不含私钥、⼆进制格式 : PKCS7扩展名 : .p7b/.p7r描述 : 【PKCS #7】加密信息语法标准特点 : 1、p7b以树状展⽰证书链,不含私钥2、p7r为CA对证书请求签名的回复,只能⽤于导⼊格式 : CMS扩展名 : .p7c/.p7m/.p7s描述 : 【Cryptographic Message Syntax】特点 : 1、p7c只保存证书2、p7m:signature with enveloped data3、p7s:时间戳签名⽂件格式 : PEM扩展名 : .pem描述 : 【Printable Encoded Message】特点 : 1、该编码格式在RFC1421中定义,其实PEM是【Privacy-Enhanced Mail】的简写,但他也同样⼴泛运⽤于密钥管理2、ASCII⽂件3、⼀般基于base 64编码格式 : PKCS10扩展名 : .p10/.csr描述 : 【PKCS #10】公钥加密标准【Certificate Signing Request】特点 : 1、证书签名请求⽂件2、ASCII⽂件3、CA签名后以p7r⽂件回复格式 : SPC扩展名 : .pvk/.spc描述 : 【Software Publishing Certificate】特点 : 微软公司特有的双证书⽂件格式,经常⽤于代码签名,其中1、pvk⽤于保存私钥2、spc⽤于保存公钥2.3 常⽤证书⽂件格式 CA中⼼普遍采⽤的规范是X.509[13]系列和PKCS系列,其中主要应⽤到了以下规范:2.3.1 X.509(1993) X.509是由国际电信联盟(ITU-T)制定的数字证书标准。

使用Java实现安全性加密与解密

使用Java实现安全性加密与解密

使用Java实现安全性加密与解密在当今信息时代,数据的安全性越来越受到重视。

无论是个人的隐私信息还是企业的商业机密,都需要得到有效的保护。

而加密与解密技术就是一种常用的保护数据安全的手段。

本文将介绍如何使用Java语言实现安全性加密与解密。

1. 加密与解密的基本概念加密是将明文转换为密文的过程,而解密则是将密文转换回明文的过程。

加密算法通常使用一个密钥,密钥用于控制加密过程的转换规则,只有拥有正确的密钥才能进行解密。

常见的加密算法有对称加密算法和非对称加密算法。

对称加密算法使用相同的密钥进行加密和解密,速度较快,但密钥的传输和管理相对困难。

非对称加密算法使用一对密钥,公钥用于加密,私钥用于解密,安全性较高,但速度较慢。

2. 使用Java实现对称加密Java提供了多种对称加密算法的实现,如DES、AES等。

下面以AES算法为例,介绍如何使用Java实现对称加密。

首先,需要导入Java加密扩展(JCE)的包。

在Java 8及以上版本中,JCE已经被默认包含在JDK中,无需额外导入。

接下来,可以使用以下代码进行AES加密:```javaimport javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;public class AESUtil {private static final String ALGORITHM = "AES";public static String encrypt(String plainText, String key) throws Exception {KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGORITHM);keyGenerator.init(128);SecretKey secretKey = keyGenerator.generateKey();byte[] enCodeFormat = secretKey.getEncoded();SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, ALGORITHM);Cipher cipher = Cipher.getInstance(ALGORITHM);cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);byte[] encryptedBytes = cipher.doFinal(plainText.getBytes());return Base64.getEncoder().encodeToString(encryptedBytes);}public static String decrypt(String encryptedText, String key) throws Exception {KeyGenerator keyGenerator = KeyGenerator.getInstance(ALGORITHM);keyGenerator.init(128);SecretKey secretKey = keyGenerator.generateKey();byte[] enCodeFormat = secretKey.getEncoded();SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat, ALGORITHM);Cipher cipher = Cipher.getInstance(ALGORITHM);cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);byte[] encryptedBytes = Base64.getDecoder().decode(encryptedText);byte[] decryptedBytes = cipher.doFinal(encryptedBytes);return new String(decryptedBytes);}}```以上代码中,`encrypt`方法用于对明文进行加密,`decrypt`方法用于对密文进行解密。

Java中SpringSecurity密码错误5次锁定用户的实现方法

Java中SpringSecurity密码错误5次锁定用户的实现方法

Java中SpringSecurity密码错误5次锁定⽤户的实现⽅法Spring Security简介Spring Security是⼀个能够为基于Spring的企业应⽤系统提供声明式的安全访问控制解决⽅案的安全框架。

它提供了⼀组可以在Spring应⽤上下⽂中配置的Bean,充分利⽤了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注⼊)和AOP(⾯向切⾯编程)功能,为应⽤系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写⼤量重复代码的⼯作。

下⾯看下实例代码:第⼀步:创建 AuthenticationSuccessEventListener.Java ⽤来处理登录成功的事件。

package com.dcits.yft.auth;import erDao;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationListener;import org.springframework.security.authentication.event.AuthenticationSuccessEvent;import ponent;import java.util.Map;/*** 登陆成功监听** @author Shaoj 3/2/2017.*/@Componentpublic class AuthenticationSuccessEventListener implements ApplicationListener<AuthenticationSuccessEvent> {@Autowiredprivate UserDao userDao;@Overridepublic void onApplicationEvent(AuthenticationSuccessEvent authenticationSuccessEvent) {YftUserDetails yftUserDetails = (YftUserDetails) authenticationSuccessEvent.getAuthentication().getPrincipal();String account = yftUserDetails.getUsername();Map<String, Object> user = userDao.queryUserByAccount(account);userDao.updateStatusByAccount(account, user.get("ENABLE").toString(), 0);}}第⼆步:新建AuthenticationFailureListener.java ⽤来处理登录失败的事件。

java技术文档案例

java技术文档案例

java技术文档案例摘要:一、Java 技术简介1.Java 的背景与历史2.Java 的优势与特点二、Java 核心概念1.Java 语言基础a.Java 语法b.Java 数据类型c.Java 运算符d.Java 流程控制2.面向对象编程a.类与对象b.继承与多态c.抽象类与接口3.Java 异常处理a.异常类的层次结构b.try-catch-finally 语句三、Java 核心库介绍1.集合框架a.集合类概述b.常用集合类介绍2.输入输出流a.文件输入输出b.字节流与字符流3.多线程编程a.线程的创建与控制b.线程同步与通信4.网络编程a.网络套接字编程b.URL、URLConnection 与HttpURLConnection四、Java 开发工具与环境1.JDK 与JRE2.Eclipse 与IntelliJ IDEA3.版本控制工具如Git五、Java 应用领域1.桌面应用开发2.网络应用开发3.移动应用开发4.嵌入式系统开发5.大数据与云计算领域正文:Java 技术文档案例Java 是一种广泛应用的高级编程语言,自1995 年由Sun Microsystems 公司推出以来,已经发展成为全球最流行的编程语言之一。

Java 具有跨平台、面向对象、安全性等特点,被广泛应用于各种领域。

本案例将介绍Java 技术的基本概念、核心库以及开发工具与环境,并探讨Java 在不同领域的应用。

一、Java 技术简介Java 起源于1991 年,由Sun Microsystems 公司的一个团队开发。

Java 的名称来源于一个名为“Java”的咖啡馆,因为该团队经常在那里讨论项目。

Java 语言的设计目标是为了简化分布式应用的开发,实现“一次编写,到处运行”的理念。

Java 具有丰富的类库,可以轻松地实现各种功能。

二、Java 核心概念1.Java 语言基础Java 语言基础包括语法、数据类型和运算符等。

java 读取ca证书内容 -回复

java 读取ca证书内容 -回复

java 读取ca证书内容-回复在Java中读取CA证书内容是一项重要而常见的任务。

CA证书,也称为数字证书,是由数字证书机构(CA)签发的一种电子文档,用于证明特定实体的身份和数字签名。

在网络通信和电子商务等领域,CA证书被广泛使用来确保数据的安全性和可信度。

本文将逐步介绍如何使用Java编程语言来读取CA证书的内容,并解释其中的每一个步骤。

首先,我们需要导入Java编程语言中与加密和证书相关的库。

在Java中,我们可以使用`java.security`和`java.security.cert`包来处理证书和加密相关的任务。

因此,我们需要添加以下导入语句:javaimport java.security.cert.CertificateException;import java.security.cert.CertificateFactory;import java.security.cert.X509Certificate;import java.io.FileInputStream;接下来,我们需要指定CA证书文件的路径,并创建一个`CertificateFactory`对象,该对象将用于解析证书文件。

可以通过`FileInputStream`类来读取文件,并与`CertificateFactory`类一起使用,将证书文件的内容加载到内存中。

下面是相关的代码:javaString certificateFilePath = "path/to/ca_certificate.crt"; FileInputStream fis = new FileInputStream(certificateFilePath); CertificateFactory certificateFactory =CertificateFactory.getInstance("X.509");X509Certificate caCertificate = (X509Certificate) certificateFactory.generateCertificate(fis);在上述代码中,我们使用了`CertificateFactory.getInstance("X.509")`方法来获取`CertificateFactory`实例,并指定证书的类型为X.509。

java17对应的ss安全证明书

java17对应的ss安全证明书

文章标题:Java 17对应的SSL安全证书探究在当今信息爆炸的时代,网络安全问题备受关注。

Java 17作为一种广泛应用的编程语言,对于SSL安全证书的支持也备受关注。

在本文中,我们将从从简到繁、由浅入深的方式来探讨Java 17对应的SSL安全证书,以便读者能更深入地理解这一主题。

1. SSL安全证书的基本概念SSL安全证书是确保网络通信安全的重要组成部分,它通过对通信双方的身份进行认证,并使用加密技术来保护数据的传输。

在Java 17中,SSL安全证书扮演着重要的角色,它的功能和作用需要我们深入了解和掌握。

2. Java 17的SSL安全证书支持Java 17作为一种流行的编程语言,对于SSL安全证书的支持至关重要。

它提供了丰富的API和工具,让开发者能够轻松地管理和使用SSL安全证书,为网络通信提供了可靠的保障。

在我们的日常开发工作中,对于Java 17的SSL安全证书支持有哪些值得注意的地方?这些功能如何应用到实际场景中?我们需要深入思考和探讨。

3. Java 17对SSL安全证书的更新和改进随着网络安全形势的不断发展,SSL安全证书也需要不断更新和改进。

在Java 17中,对于SSL安全证书的更新和改进都有哪些具体的内容?这些更新和改进对于我们的网络通信安全有何重要意义?我们需要对这些内容进行全面评估和思考。

4. 个人观点和理解在我看来,Java 17对应的SSL安全证书是网络通信安全的重要保障,它的功能和作用不容忽视。

通过学习和掌握Java 17对应的SSL安全证书,我们能更好地保护网络通信的安全,提升用户体验和信任度。

总结与回顾本文从基本概念开始,详细探讨了Java 17对应的SSL安全证书的支持、更新和改进,同时共享了个人观点和理解。

通过对这一主题的全面评估和揭示,相信读者能够全面、深刻和灵活地理解Java 17对应的SSL安全证书的重要性和应用价值。

通过对Java 17对应的SSL安全证书进行全面评估和深度探讨,我们能更深入地理解和掌握这一重要的主题。

java certificate工具类

java certificate工具类

java certificate工具类Java Certificate工具类是Java编程中常用的一个类库,用于处理与数字证书相关的操作。

数字证书在网络通信和信息安全领域起着重要的作用,通过使用Java Certificate工具类,我们可以方便地生成、解析、验证和管理数字证书。

本文将介绍Java Certificate工具类的基本使用方法及其在实际开发中的应用。

一、Java Certificate工具类概述Java Certificate工具类是Java提供的一个用于处理数字证书的类库,主要包括以下几个方面的功能:1. 数字证书的生成:Java Certificate工具类提供了生成数字证书的方法,可以生成包含公钥、私钥、证书有效期等信息的数字证书。

2. 数字证书的解析:Java Certificate工具类可以解析数字证书的各个字段,包括证书的颁发者、持有者、有效期、证书类型等信息。

3. 数字证书的验证:Java Certificate工具类支持对数字证书的有效性进行验证,包括验证证书的数字签名、证书是否过期等。

4. 数字证书的管理:Java Certificate工具类可以用于管理数字证书,包括导入、导出、删除证书等操作。

二、Java Certificate工具类的基本使用方法1. 生成数字证书使用Java Certificate工具类生成数字证书的基本步骤如下:(1)创建数字证书生成器对象。

(2)设置证书的有效期、持有者等信息。

(3)生成证书的公钥和私钥对。

(4)将公钥和证书信息传入数字证书生成器。

(5)调用生成方法生成数字证书。

2. 解析数字证书使用Java Certificate工具类解析数字证书的基本步骤如下:(1)创建数字证书解析器对象。

(2)通过输入流读取证书文件。

(3)调用解析方法解析数字证书。

(4)获取数字证书的各个字段信息,如颁发者、持有者、有效期等。

3. 验证数字证书使用Java Certificate工具类验证数字证书的基本步骤如下:(1)创建数字证书验证器对象。

数字证书应用及接口API概述-文档资料

数字证书应用及接口API概述-文档资料


数字证书在应用系统中的使用示意图
数据库
CA中心
API接口函数包
服务器端
服务器数字证书
应用系统
使用单位
用户
个人数字证书
客口的种类
• Java(jsp) • Com (asp/asp) • C/C++ 提供专用的客户端控件 在客户端可直接通过在网页、VB、

应用方式
1、直接使用 将数字证书应用于安全通道的建立
SSL安全通信
2、针对性开发 将数字证书应用到第三方软件开发商开发 的各种应用程序中

实现功能
1、身份认证 使用数字证书取代原有的“用户名+密码” 的登录方式,实现强认证方式 2、数字签名 签名/验签--完整性校验、防抵赖 3、数据保密 数据的加密和解密
身份认证 服务器验证 证书验证 证书解析 数字签名/验签 数据的加/解密 数字信封

谢谢!

VC、Delphi程序中调用该控件,从而实现数 字证书相关功能。

C语言接口 服务器
Java语言接口 服务器
ASP-COM接口 服务器
ActiveX控件
ActiveX控件
ActiveX控件
客户端
客户端
客户端

接口功能
数字证书应用及接口API概述

一、数字证书应用概述

应用范围 应用现状

应用方式

应用范围
网站应用 Web 服务: MS IIS 、 Apache 、Netscape 浏览器:Netscape Navigator 4.0以上 Microsoft IE 4.0以上 安全电子邮件 S/MIME标准 OutLook、OutLook Express、Netscape Messsager foxmail 应用系统 已有标准系统:Lotus Notes、Oracle等 自行开发系统:各种业务系统,如网上招标、 网上报税等 VPN应用 IPSec+PKI技术

数字证书培训

数字证书培训

6.点击:“完成”出现如右图:
PPT文档演模板
数字证书培训
7、点击: “是(Y)”出现如下图:
8、点击: “确定”。CA数字证书成功导入到您的机器中,为 USBKEY的使用建立了应用环境。
注意: 2个证书均需导入成功。
PPT文档演模板
数字证书培训
2.3 安装完成后注意事项
§ 1.当第一次插入USBKey会出现如下图,初始密码见信封 正面:
PPT文档演模板
数字证书培训
1.2 USBKEY的特点
§ ·身份标志: 存储与您身份唯一指定的CA数字证书。 § ·安全性高: 仅允许指定的CA证书存入,证书不能导
出、不能进行复制。 § ·多重保护: 使用时需要PIN码(PIN码是你的
USBKEY的个人标识号 )验证。 § ·使用方便: 操作简单、便于携带、便于保管。
PPT文档演模板
数字证书培训
3.数字证书相关设置
§3.1 修改数字证书PIN码 §3.2 修改USBKey名称
PPT文档演模板
数字证书培训
3.1 修改数字证书PIN码
1.点击:“开始”>>“程序”>>“EnterSafe” >>“ePass3003_GFA” >>“管理工具”如下图:
PPT文档演模板
§ 数字证书是由一个由权威机构-----CA机构, 又称为 证书授权(Certificate Authority)中心发行的。
§ 学信网数字证书 = CA数字证书(软件) +USBKEY(硬件)
PPT文档演模板
数字证书培训
§ 国富安电子商务安全认证中心是国家部委首 家获得工业和信息化部颁发的电子认证服务 许可资质的第三方电子认证服务机构。是一 个典型的CA机构。

国开电大计算机网络安全技术(河北)形考四参考答案

国开电大计算机网络安全技术(河北)形考四参考答案

国开电大计算机网络安全技术(河北)形考四参考答案b.加密通信c.防止网络攻击答案】:证明某个实体的公钥的有效性在网络信息安全模型中,政策、法律、法规是安全的基石。

它们是建立安全管理的标准和方法。

在以下网络互连设备中,网关通常是由软件来实现的。

包过滤工作在OSI模型的网络层和传输层。

解决IP欺骗技术的最好方法是安装过滤路由器,在该路由器的过滤规则中,应该过滤掉源地址与内部网络地址不同的数据包。

数字签名可以保证信息传输的完整性和真实性。

数字签名和手写签名的区别是前者是和1的数字串,后者是模拟图形。

数字签名可以利用公钥密码体制实现,但不能保证消息内容的机密性。

数字签名可保证信息传输过程中信息的完整性,但不能保证信息在传输过程中不被截获。

数字签名采用的加密算法是非对称的。

在数字签名的使用过程中,发送者使用私钥对数字摘要进行加密,即生成了数字签名。

数字签名是通过签名算法来实现的。

数字证书通常用于证明某个实体的公钥的有效性。

答案】:a.记录有关上网信息,记录备份保存60日Vigenere算法并不在本题的考察范围内,因此答案为Diffie-Hellman加密算法。

对称加密算法是指加密和解密使用相同密钥的加密算法,因此答案为DES加密算法。

古典加密算法是指在计算机之前使用的加密算法,因此答案为Caesar替代法。

根据《互联网上网服务营业场所管理办法》规定,服务营业场所应当记录有关上网信息并备份保存60天,因此选项a 是正确答案。

经营含有暴力内容的电脑游戏是违法行为,但不属于本题考察范围。

向未成年人开放的时间限于国家法定节假日每日8时至21时和有与营业规模相适应的专业技术人员和专业技术支持是《互联网上网服务营业场所管理办法》规定的要求。

第4章Java网络应用ppt课件全

第4章Java网络应用ppt课件全

out=new DataOutputStream(mysocket.getOutputStream( ));
//通过out向“线路”写入请求连接的信息
out.writeUTF(“我是客户机,向你请求连接。”);
//通过循环,是使用in读取服务器放在“线路”里的信息
while(true)
{ s=in.readUTF( );
•{
• ServerSocket serverS=null;
• Socket
youS=null;
• String
s=null;
• DataOutputStream out=null;
• DataInputStream in=null;
• //创建Server的套接字,设定其端口为4321
• try{ serverS=new ServerSocket(4321);}
• * 程序文件名称:SClient.java
• * 功能:客户端程序,使用套接字连接服务器
• ******************************************/
• import java.io.*;

• import .*;
• public class SClient
•{
• public static void main(String args[ ])
•{
• String
s=null;
• Socket
mysocket;
• DataInputStream in=null;
• DataOutputStream out=null;
• try{
• //创建一个可以连接到Server的套接字,其端口为4321

Java使用数字证书加密文件(含代码)

Java使用数字证书加密文件(含代码)

JA V A 使用数字证书加密解密文件总结目录1.编写目的 (3)2.JA V A生产数字证书 (4)2.1.1 keystore(JKS) 的生成 (4)2.1.2 导出公钥 (5)3.使用JKS私钥加密文件 (5)4.转换为PFX格式私钥 (6)5.使用PFX加密文件 (7)6 源代码 (8)6.1 用到的JAR包 (8)6.2 示例代码 (8)6.2.1 Test.java (8)6.2.2 RsaUtil.java (10)6.2.3 Base64.java (19)7.结束语 (26)1.编写目的学习RSA算法,读取数字证书中的私钥对文件进行加密,使用数字证书的公钥解密,这种方式就是RSA算法.自己对RSA算法的理解:⏹私钥加密公钥解密:如果用私钥对文件加密,发给别人,别人用我公布的公钥进行解密,实现这个文件就是我本人制作的,不是别人做的.⏹公钥加密私钥解密:如果别人用我的公钥加密文件,那么只能我一个人看,只有使用我的私钥进行解密,私钥一定是不能告诉其他人的.本文讲解如何用JKS私钥对文件进行加密,用对于CRT公钥进行解密,将JKS私钥转换为PFX格式私钥,并用PFX私钥对文件进行加密解密Jks:是JA V A的keytools证书工具支持的证书私钥格式pfx:是微软支持的私钥格式⏹2.JAVA生产数字证书为了实现数字证书加密文件,我们首先要制作几个数字证书,如果你已经有了pfx格式的数字证书并且知道其密码,以及对应crt或者cer格式的公钥证书则跳过本章.2.1 keytool 创建数字证书Keytool是一个Java数据证书的管理工具,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:⏹密钥实体(Key entity):密钥(secret key)又或者是私钥⏹配对公钥(采用非对称加密):可信任的证书实体(trusted certificate entries),只包含公钥2.1.1 keystore(JKS) 的生成●分阶段生成:命令格式:keytool -genkey -alias yushan(别名) -keypass yushan(别名密码) -keyalg RSA(算法) -keysize 1024(密钥长度) -validity 365(有效期,天单位) -keystore e:\yushan.keystore(指定生成证书的位置和证书名称) -storepass 123456(获取keystore信息的密码);示例:1)cmd下进入java/bin2)输入命令keytool -genkey -alias myalias-keypass 123456-keyalg RSA-keysize 1024 -validity 365 -keystore d: \myalias.keystore -storepass 123456●一次性生成:keytool -genkey -alias yushan -keypass yushan -keyalg RSA -keysize 1024 -validity 365 -keystore e:\yushan.keystore -storepass 123456 -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)";(中英文即可)无例图2.1.2 导出公钥命令:keytool -export -alias myalias -keystore d:\myalias.keystore -file d:\myalias.crt -storepass 123456创建结果:3.使用JKS私钥加密文件//工具类RSAUtil rsa = new RSAUtil();//从jks私钥中获取私钥加密串PrivateKey priKeyFromKs = rsa.getPriKeyFromKS("d:\\myalias.keystore","123456", "myalias", "123456");//从jks私钥中获取公钥解密串PublicKey pubKeyFromKS = rsa.getPubKeyFromKS("d:\\myalias.keystore", "123456", "myalias");//从crt公钥中获取公钥解密串PublicKey pubKeyFromCrt = rsa.getPubKeyFromCRT("d:\\myalias.crt");//用私钥串加密rsa.encryptWithPrv("d:\\file.xml",priKeyFromKs,"d:\\file_encWithKSPri.xml", true);//用jks公钥串解密rsa.decryptWithPub("d:\\file_encWithKSPri.xml", pubKeyFromKS, true,"d:\\file_encWithKSPri_decKs.xml");//用crt公钥串解密rsa.decryptWithPub("d:\\file_encWithKSPri.xml", pubKeyFromCrt, true, "d:\\file_encWithKSPri_decCrt.xml");4.转换为PFX格式私钥如果你已经有了pfx格式的数字证书并且知道其密码,以及对应crt或者cer格式的公钥证书则跳过本章.4.1 转换工具转换工具我使用的是kestore-export下载kestore-export.rar 请百度搜索,我也会往CSDN上上传,请直接搜索kestore-export.rar。

10个常用数字证书应用实例

10个常用数字证书应用实例

10个常用数字证书应用实例10个常用数字证书应用实例数字证书主要应用于各种需要身份认证的场合,目前广泛应用于网上银行、网上交易等商务应用外,数字整数还可以应用于发送安全电子邮件、加密文件等方面,以下是10个数字证书最常用的应用实例,从中读者可以更好地了解数字证书技术及其应用。

一、保证网上银行的安全只要你申请并使用了银行提供的数字证书,即可保证网上银行业务的安全,即使黑客窃取了你的帐户密码,因为他没有你的数字证书,所以也无法进入你的网上银行帐户。

下面我们以建设银行的网上银行为例,介绍数字证书的安装与使用:1、安装根证书首先到银行营业厅办理网上银行申请手续;然后登录到各地建设银行网站,点击网站“同意并立即下载根证书”,将弹出下载根证书的对话框,点“保存”,把root.crt保存到你的硬盘上;双击该文件,在弹出的窗口中单击“安装证书”,安装根证书。

2、生成用户证书接下来要填写你的账户信息,按照你存折上的信息进行填写,提交表单,按“确定”后出现操作成功提示,记住你的账号和密码;进入证书下载的页面,点击“下载”,在新画面中(见图5)选择存放证书的介质为“本机硬盘(高级加密强度))”,点击“生成证书”按钮,将询问你是否请求一个新证书,接着询问你“是否要添加新的证书”,信任该站点,点“是”;系统将自动安装证书,最后出现“安装成功”画面。

图1 生成用户证书3、使用数字证书现在,你可以使用证书来确保网上银行的安全了,建议你把证书保存在USB盘上,使用网上银行时才插到电脑上,防止证书被盗。

重新进入建设银行网站,选择“证书客户登录”,选择正确的证书号,输入用户号和密码,即可登录你的网上银行帐户,办理转账、网上速汇通等业务。

二、通过证书防范你的网站被假冒目前许多著名的电子商务网站,都使用数字证书来维护和证实信息安全。

为了防范黑客假冒你的网站,你可以到广东省电子商务认证中心申请一个服务器证书,然后在自己的网站上安装服务器证书。

Java实现浏览器CA证书的签名和验证

Java实现浏览器CA证书的签名和验证

Java实现浏览器CA证书的签名和验证
简艳英;周爱霞
【期刊名称】《商丘职业技术学院学报》
【年(卷),期】2007(6)2
【摘要】本文讨论了数字证书及其在网络安全中的重要作用,介绍了Java技术在安全中的应用,最后利用Java实现客户端数字证书的签名和验证.
【总页数】4页(P42-45)
【作者】简艳英;周爱霞
【作者单位】商丘职业技术学院,河南,商丘,476000;商丘职业技术学院,河南,商丘,476000
【正文语种】中文
【中图分类】TP393
【相关文献】
1.散列函数、数字签名及CA证书于软件在线升级中的应用设计 [J], 周才学
2.一种全景图浏览器的JAVA实现算法 [J], 宋利;周源华;周军
3.使用Java实现离线浏览器 [J], 夏晓阳;江春华
4.通过CA证书获取安全认证的JAVA实现 [J], 唐雪莲
5.一个基于原始签名人、代理签名人、接收人三方身份验证的代理签名方案 [J], 张永刚
因版权原因,仅展示原文概要,查看原文内容请购买。

JAVA语言程序设计-国家开放大学电大学习网形考作业题目答案

JAVA语言程序设计-国家开放大学电大学习网形考作业题目答案

JAVA语言程序设计一、单选题1.()提供给上层应用进行开发和构建应用的基础类库。

A.JDKB.JREC.JVMD.Java应用正确答案: A2.Java程序在编译之后,以()方式被Java虚拟机执行。

A.源代码B.二进制C.字节码D.文本正确答案: C3.下列()移动开发平台使用Java语言作为官方推荐开发语言。

A.SymbianB.IOSC.WindowsD.Android正确答案: D4.Java语言中用来编译Java程序的命令是()。

A.java.exeB.javaw.exeC.javap.exeD.javac.exe正确答案: D5.下列()是合法的标识符。

modityPriceB.num_greenC.23667D.{printOut}正确答案: B6.下列()不是保留字A.byteB.returnC.num_blueD.private正确答案: C7.下列关于float类型float f=5.2的说法,正确的是()。

A.正确B.错误,精度不够,需要强制类型转换floatC.错误,变量声明错误D.错误,可以考虑使用int类型正确答案: C8.下列代码执行的结果中m和n的值分别为()。

int m = 50, n=160; int tmp =m; m=n; n=tmp 回答错误A.50/160B.50/50C.160/50D.160/160正确答案: C9.表达式29/3*3的值是()。

A.29B.27.999C.27D.27.0正确答案: C10.执行下列语句: int m=15; int val =m- -; val的值是()。

A.13B.14C.15D.16正确答案: C11.执行下列语句: int m=15; int val =--m; val的值是()。

A.13B.14C.15D.16正确答案: B12.编译运行以下代码段后,关于输出结果正确的是()。

public class Conditional{public static void main(String args[ ]){int x=4;System.out.println(“value is “+ ((x>4) ? 99.9:9));}}A.value is 99.9B.value is 9C.value is 9.0D.编译错误正确答案: C13.下列代码段运行结果为()。

2卫生系统数字证书应用集成规范

2卫生系统数字证书应用集成规范

卫生系统电子认证服务体系系列规范-卫生系统数字证书应用集成规范(试行)卫生部办公厅2010年4月30日1 范围 (1)2 应用集成目标 (1)3 应用集成要求 (1)4 应用集成内容 (1)5 统一证书应用接口规范 (2)5.1 统一证书应用接口概述 (2)5.2 证书应用综合服务接口概述 (2)5.3 证书应用综合服务接口客户端接口函数定义 (4)5.4 证书应用综合服务接口服务器端COM组件函数定义 (9)5.5 证书应用综合服务接口服务器端JA V A组件函数定义 (17)5.6 证书应用综合服务接口相关代码表 (26)附录A (资料性附录) 证书应用接口实施示例 (32)附录B (资料性附录) 名词解释 (35)1 范围本规范依据《卫生系统电子认证服务管理办法(试行)》,参照国家密码管理局“公钥密码基础设施应用技术体系”系列技术规范,结合卫生系统业务特点,提出卫生系统数字证书应用集成目标、集成要求、集成内容,定义统一的证书应用接口,并提供证书应用接口的典型部署示例、登录认证流程示例和签名验证流程示例。

本规范用于指导并规范卫生信息系统证书应用集成实施工作,指导电子认证服务机构开发标准统一的证书应用接口,规范卫生信息系统实现基于数字证书的安全登录、数字签名和加密解密等安全功能。

2 应用集成目标1)在目前卫生信息系统普遍使用的用户名/口令认证方式基础上,引入数字证书技术,建立基于数字证书的身份认证机制,确保系统访问控制的高安全性和高可靠性;2)对卫生信息系统的重要操作环节和重要数据实现基于数字证书的数字签名功能,保护数据的完整性,并为后期纠纷处理及责任认定提供合法电子证据;3)对卫生信息系统的敏感信息实现基于数字证书的数据加密功能,确保敏感信息在传输和存储阶段的安全性。

3 应用集成要求在证书应用集成时,应根据卫生系统各应用单位的业务特点和业务需求,确定需要改造的业务系统数量及名称、确定需要使用证书认证的用户及范围、确定需要加密签名的重要操作环节和数据,具体集成要求如下:1)卫生信息系统在集成数字证书的安全功能时,首先应实现基于数字证书的身份认证功能;2)对于具有操作行为责任认定、证据保存需求的卫生信息系统,应实现基于数字证书的数字签名的功能;3)对于具有数据加密和解密需求的卫生信息系统,应实现基于数字证书的信息加密、信息解密功能;4)对于具有可信时间需求的卫生信息系统,应集成时间戳功能;5)对于具有信息共享需求的多个应用系统,可采用统一的身份认证模式,实现统一的身份认证管理、用户信息共享和单点登录等功能。

java certificate工具类

java certificate工具类

java certificate工具类摘要:1.Java 证书概述2.Java 证书工具类介绍3.Java 证书工具类的使用示例4.总结正文:1.Java 证书概述在Java 编程中,证书是一种用于验证客户端与服务器之间通信的安全机制。

通过使用证书,可以确保数据传输过程中的信息安全和完整性。

Java 提供了一套处理证书的API,以便开发人员能够轻松地处理证书相关的操作。

2.Java 证书工具类介绍Java 证书工具类是一组用于处理证书的实用程序类。

这些工具类提供了一种简化的方式来处理证书的生成、解析、验证等操作。

Java 证书工具类主要包括以下几类:- Certificate:表示证书实体,包括证书的颁发者、主题、有效期、公钥等信息。

- CertPath:表示证书链,用于表示一组证书的集合。

- CertificateFactory:表示证书工厂,用于生成和解析证书。

- TrustManagerFactory:表示信任管理器工厂,用于生成和解析信任管理器。

- KeyStore:表示密钥库,用于存储密钥和证书。

3.Java 证书工具类的使用示例下面是一个使用Java 证书工具类的简单示例,用于生成一个自签名的证书:```javaimport java.security.cert.Certificate;import java.security.cert.CertificateFactory;import java.security.cert.X509Certificate;import java.security.KeyStore;import java.security.PrivateKey;import java.security.SecureRandom;public class CertificateExample {public static void main(String[] args) throws Exception {// 创建一个KeyStore 实例,用于存储证书和密钥KeyStore keyStore = KeyStore.getInstance("JKS");keyStore.load(null, new SecureRandom());// 创建一个私钥和证书PrivateKey privateKey =KeyGenerator.getInstance("RSA").generateKey();Certificate certificate =CertificateFactory.getInstance("X509").generateCertificate(privateKey, "CN=localhost", 365, new SecureRandom());// 将证书添加到KeyStore 中keyStore.storeCertificate(certificate);// 将KeyStore 中的证书导出为PEM 格式CertPath certPath =CertPathBuilder.create().addCertificate(certificate).build();CertificateFactory.getInstance("PEM").generateCertPath(certPath).writeT oFile("cert.pem", "PKCS8EncodedKeySpec", new SecureRandom());}}```4.总结Java 证书工具类为开发人员提供了一种方便的方式来处理证书相关的操作。

java x509certificate用法

java x509certificate用法

java x509certificate用法X509Certificate是Java中用于表示数字证书的类,它提供了一组方法来操作和验证数字证书。

在Java中,X509Certificate通常用于安全通信,如SSL/TLS连接、数字签名和证书验证等场景。

要使用X509Certificate,首先需要获取数字证书的字节数组。

这可以通过从文件中读取证书、从证书存储中获取证书或从证书请求中生成证书等方式获得。

一旦获得了证书字节数组,就可以使用X509Certificate类的构造函数创建一个新的对象。

以下是一个简单的示例,演示如何使用字节数组创建一个X509Certificate对象:```javaimportjava.security.cert.Certificate;importjava.security.cert.X509Certificate;//假设已经获得了证书字节数组byte[]certBytes=...;X509Certificatecertificate=newX509Certificate(certBytes);```二、验证数字证书X509Certificate类提供了一组方法来验证数字证书,如验证证书的有效期、签发者、主题等。

可以使用isValid()方法检查证书是否有效,使用getIssuerDN()方法获取证书的签发者信息,使用getSubjectDN()方法获取证书的主题信息等。

以下是一个示例,演示如何验证数字证书:```java//假设已经有一个X509Certificate对象X509Certificatecertificate=...;//验证证书有效性if(certificate.isValid()){System.out.println("证书有效");}else{System.out.println("证书无效");}//获取签发者信息X509CertInfocertInfo=(X509CertInfo)certificate.get(X509Ce );GeneralNameissuerName=(GeneralName)certInfo.getIssuerDN() .getName();Stringissuer=issuerName.getName(X509Name.RFC2253);System.out.println("签发者:"+issuer);//获取主题信息X509CertInfosubjectInfo=(X509CertInfo)certificate.get(X50 9CertInfo.SUBJECT);Stringsubject=((X509Name)subjectInfo.getSubjectDN().getNa me()).toString();System.out.println("主题:"+subject);```三、使用X509Certificate进行安全通信在安全通信中,可以使用X509Certificate进行SSL/TLS连接、数字签名和证书验证等操作。

EKP FOR JAVA开发样例V4

EKP FOR JAVA开发样例V4

蓝凌JAVA 产品EKP FOR JAVA 开发样例文档控制/Document Control 修改记录审阅人分发目录第一章、概述 (4)1.1.目的 (4)1.2.范围 (4)1.3.文档约定 (4)第二章、开发规范 (5)第三章、开发环境准备 (6)第四章、简单样例开发 (7)1.1需求分析 (7)1.2页面原形的制作 (7)1.3检出项目 (7)1.4启动项目 (8)1.4.1创建数据库 (8)1.4.2修改数据库连接的配置 (9)1.4.3启动内存溢出的解决 (9)1.4.4数据初始化 (11)1.4.5登陆首页验证环境 (12)1.5数据库设计 (12)1.5.1新建存放代码的项目 (12)1.5.2新建ModelsTry数据模型文件 (15)1.5.3表设计 (18)1.6生成代码 (20)1.6.1设置模型属性 (20)1.6.2生成代码 (24)1.7拷贝代码文件 (27)1.7.1拷贝java文件 (27)1.7.2拷贝jsp文件 (28)1.7.3拷贝XMl配置文件 (29)1.7.4模块目录树tree.jsp (29)1.8修改业务代码 (30)1.8.1修改model代码 (30)1.8.2修改form代码 (30)1.8.3修改dao代码 (30)1.8.4修改service代码 (31)1.8.5修改action代码 (31)1.8.6修改list页面代码 (33)1.8.7修改edit页面代码 (34)1.8.8修改view页面代码 (36)1.9启动项目测试功能 (39)第五章、常用组件使用 (41)1.1.枚举类型 (41)1.1.1.数据库设计 (41)1.1.2.枚举类型配置文件 (45)1.2.RTF文本域 (46)1.2.1.数据库设计 (46)1.2.2.修改edit页面代码 (49)1.2.3.修改view页面代码 (50)1.3.树 (51)1.3.1.数据库设计 (51)1.3.2.修改model代码 (53)1.3.3.修改form代码 (56)1.3.4.修改service代码 (58)1.3.5.修改dao代码 (60)1.3.6.修改list页面 (60)1.3.7.修改edit页面 (60)1.3.8.修改view页面 (62)1.4.分类 (63)1.4.1.数据库设计 (63)1.4.2.修改action代码 (66)1.4.3.修改list页面代码 (67)1.4.4.修改edit页面代码 (67)1.4.5.修改view页面代码 (68)1.5.综合应用 (68)1.5.1.数据库设计 (68)1.5.2.修改ModelsTry属性 (69)1.5.3.修改model文件 (75)1.5.4.修改form文件 (75)1.5.5.修改dao代码 (75)1.5.6.修改action代码 (76)1.5.7.修改list页面代码 (76)1.5.8.修改edit页面代码 (79)1.5.9.修改view页面代码 (83)第六章、机制部署 (87)第七章、附录 (88)1.1登陆系统 (88)1.2转入系统页面 (88)1.3导入系统初始化 (89)1.4导航树配置 (90)1.5主页设置 (92)文档授权 (95)第一章、概述1.1. 目的本文档的目的是使Java产品开发能以标准的、规范的方式设计和编码,通过该指引可以使新开发人员快速进入开发、查找样例代码,提高开发质量和速度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

前言随着网络应用的不断深入,特别是电子商务应用的普及,对网络应用的安全提出了许多新的和更高的要求。

在Java及J2EE应用系统平台环境中,提供了多层次和多种形式的安全技术的支持,从而可以在一定的程度上保证应用系统的安全性。

比如,将Web应用中的客户端和Web服务器端之间的通讯连接方式从Http方式改变为Https方式,则是对Web 应用在协议层次的安全保护技术——Https是在协议层对Http的再次封装,加入了SSL/TLS等相关的技术。

作者根据自身多年的软件开发实践和经验总结,结合多年的IT职业培训的教学和高校软件学院一线的教学工作体验,在本系列文档中通过具体的程序代码示例为读者介绍Java 及J2EE应用系统平台环境中的安全相关的应用技术。

主要的目的是希望能够将作者在项目开发中所涉及的安全应用技术进行总结和提炼,以成功的经验或者失败的教训为读者减少软件开发中由于安全技术的欠缺而导致应用系统在使用中所带来的各种风险,同时也为高校师生总结出Java及J2EE应用系统平台环境中的相关安全技术,增强和培养软件专业的学生对应用系统安全技术的关注度和提高对相关技术的应用能力。

目前数字证书的格式普遍采用的是X.509V3国际标准,作为文件形式存在的证书一般有如下的这几种格式。

其中只有pfx格式的数字证书是包含有私钥的,而cer格式的数字证书里面只有公钥没有私钥。

(1)带有私钥的证书由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。

(2)二进制编码的证书证书中没有私钥,DER 编码二进制格式的证书文件,以cer 作为证书文件后缀名。

(3)Base64编码的证书证书中没有私钥,BASE64 编码格式的证书文件,也是以cer 作为证书文件后缀名。

本文档主要涉及如何创建和安装数字证书文件、如何根据证书库文件导出生成安全证书文件、如何将所生成的安全证书文件导入到浏览器中以及如何对Https的应用状况进行优化、优化Tomcat中的Https的配置和如何避免Https访问时弹出安全警告信息等内容。

杨教授大学堂精心创作有系列化的优秀程序员职业提升必读技术资料,这些资料将系统地从软件设计和开发实现的“设计思想”、“管理策略”、“技术实现”和“经验方法”等方面与读者进行充分的交流,涉及作者对软件开发设计思想和原则、课程设计、项目实训、软件实现技术等方面的学习心得体会和应用技巧、经验总结。

本文目录1.1创建和安装数字证书文件 (3)1.1.1根据证书库文件导出生成安全证书文件 (3)1.1.2将所生成的安全证书文件导入到浏览器中 (4)1.2对Https的应用状况进行优化 (18)1.2.1优化Tomcat中的Https的配置 (18)1.2.2如何避免Https访问时弹出安全警告信息 (28)1.1创建和安装数字证书文件1.1.1根据证书库文件导出生成安全证书文件1、安全证书文件的格式目前数字证书的格式普遍采用的是X.509V3国际标准,作为文件形式存在的证书一般有如下的这几种格式。

其中只有pfx格式的数字证书是包含有私钥的,而cer格式的数字证书里面只有公钥没有私钥。

(1)带有私钥的证书由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。

(2)二进制编码的证书证书中没有私钥,DER 编码二进制格式的证书文件,以cer作为证书文件后缀名。

(3)Base64编码的证书证书中没有私钥,BASE64 编码格式的证书文件,也是以cer作为证书文件后缀名。

2、导出生成安全证书文件(1)输入如下的命令keytool -export -alias yangSB -file F:/server.cer -keystore f:/server.keystore -validity 365将出现如下的示图:上面的命令将实现把数字证书库f:/server.keystore中的别名为“yangSB”的证书导出到F:/server.cer 的数字证书文件中——该数字证书文件包含有证书主体的信息及证书的公钥等信息,但不包括私钥信息。

因此,可以公开。

(2)输入密码然后输入前面的f:/server.keystore数字证书库文件中的keystore密码123456,将在F盘中创建出一个server.cer的数字证书文件——其中的“-file F:/server.cer”即为生成的cer文件,如下示图所示:双击server.cer的数字证书文件,将能够正常地看到数字证书中相关的信息。

1.1.2将所生成的安全证书文件导入到浏览器中1、在IE浏览器中导入数字证书打开IE浏览器后,点击“工具”,然后选择“Internet选项”。

选择Internet选项中选择“内容”选项卡,选择“证书”按钮。

在打开的证书窗口中,选择“导入”按钮。

将弹出如下的对话框。

点击对话框中的“下一步”按钮,将出现下面的文件选择对话框。

选择对话框中的“打开”按钮,将出现下面的对话框。

点击对话框中的“下一步”按钮,将出现下面的对话框。

点击对话框中的“下一步”按钮,将出现下面的对话框。

点击对话框中的“完成”按钮,将出现下面的对话框。

点击对话框中的“是”按钮后,将出现下面的对话框。

点击对话框中的“确定”按钮后,将出现下面的对话框。

表明数字证书导入成功。

从上面的显示信息可以了解到,本示例的数字证书的“颁发者”和“颁发给”(拥有者)为同一个人,这在实际项目中是不会出现这样的状况,在本文档中只是作为数字证书的示例。

同时也将表明该数字证书将不是可信任的数字证书,浏览器将会显示警告信息。

2、在IE浏览器中查看受信任的数字证书的信息在“受信任的根证书颁发机构”页内选中导入的数字证书项目,将弹出如下内容的对话框。

如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”。

一个标准的X.509数字证书包含以下一些内容:1)证书的版本信息;2)证书的序列号,每个证书都有一个唯一的证书序列号;3)证书所使用的签名算法;4)证书的发行机构名称,命名规则一般采用X.500格式;5)证书的有效期,现在通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;6)证书所有人的名称,命名规则一般采用X.500格式;7)证书所有人的公开密钥;8)证书发行者对证书的签名。

3、在FireFox浏览器中导入和查看数字证书(1)证书管理功能在对话框中点击“高级”页,并切换到其中的“证书”标签页,将出现下面的内容点击其中的“查看真证书”按钮,将出现下面内容的对话框而点击“验证”按钮,将出现下面内容的对话框(2)导入数字证书文件(3)查看所导入的数字证书中的相关信息点击上面对话框中的“查看”按钮,将可以查看所选择的数字证书中的相关信息,如下为本示例的数字证书的内容信息:详细信息页面内的内容信息:(4)编辑信任数字证书(5)不能在“证书机构”和“个人”页中导入数字证书将出现下面的错误提示信息。

同样,在“个人”信息页中进行导入数字证书,也将出现下面的错误提示信息。

1.2对Https的应用状况进行优化1.2.1优化Tomcat中的Https的配置1、将数字证书库文件放入WebApp项目内的目录(1)将本示例的数字证书库文件server.keystore放入WebApp项目内的目录(2)修改Https相关的<Connector>标签将其中的keystoreFile的属性修改为keystoreFile="\webapps\ROOT\server.keystore",其中的“\”代表Tomcat的根目录(本示例为F:\apache-tomcat-7.0.39)<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true"maxThreads="150" scheme="https" secure="true" sslProtocol="TLS"clientAuth="false" keystoreFile="\webapps\ROOT\server.keystore" keystorePass="123456" /> (3)再启动Tomcat服务器并观察Https是否正常(4)再浏览相关的页面是否正常2、在Web应用中正确地应用Https协议(1)实现网页的自动跳转在页面中加入如下的自动跳转代码:< meta http-equiv="Refresh" content="秒数; url=跳转的文件或地址">。

将其中的“url”属性设置为Https形式的URL地址字符串。

(2)页面中的所有资源都必须要应用Https方式进行访问如果一个页面需要通过HTTPS访问被访问,则其中所有的元素都必须是HTTPS方式,如果页面中包含有图片、JS脚本、FLASH插件等资源,但如果这些资源文件仍然是通过HTTP方式去调用的,则会出现资源文件找不到的错误。

因此,需要将调用flash的播放插件的标签内的codebase属性中的http 改成HTTPS:codebase='/pub/shockwave/cabs/flash/swflash.cab'。

3、屏蔽Web应用的Http访问方式(1)采用Http的方式仍然可以访问Web应用系统尽管已经对Tomcat服务器进行聊Https的连接配置定义,可以采用Https的方式访问部署在Tomcat 服务器中的各个Web应用,如下示图所示为访问某个论坛系统的测试页面的局部截图。

但如果在浏览器中继续输入http://127.0.0.1:8080/index.jsp后并以Http的方式访问同一个页面,Web应用程序仍然可以HTTP方式访问。

如下示图所示为采用HTTP方式访问某个论坛系统的测试页面的局部截图。

(2)屏蔽Web应用的Http访问方式可以在web.xml部署定义的配置文件中添加如下的配置定义,将自动将Http的访问方式跳转到Https 的访问方式。

<security-constraint><web-resource-collection > <!-- 此元素确定应该保护的资源集--><web-resource-name >SSL</web-resource-name><!-- url-pattern适用于直接访问这些资源,但不适用于转发的访问方式--><url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint><!-- 访问相关资源时使用任何传输层保护--><transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint></security-constraint>其中的<security-constraint>标签元素的用途是用来指示服务器使用何种验证方法,而<web-resource-collection >标签元素的用途是确定应该保护的资源,在<security-constraint>标签元素内包含至少一个<web-resource-collection >标签元素。

相关文档
最新文档