码迷,mamicode.com
首页 > 编程语言 > 详细

【Java 安全技术探索之路系列:J2SE安全架构】之六:安全管理工具

时间:2015-06-11 19:34:29      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:j2se-安全管理工   密钥   

作者:郭嘉
邮箱:allenwells@163.com
博客:http://blog.csdn.net/allenwells
github:https://github.com/AllenWell

【Java 安全技术探索之路系列:J2SE安全架构】章节列表

【Java安全技术探索之路系列:J2SE安全架构】之一:J2SE安全架构开篇
【Java 安全技术探索之路系列:J2SE安全架构】之五:类加载器
【Java 安全技术探索之路系列:J2SE安全架构】之六:安全管理工具

作为J2SE复合包的一部分,Java2平台提供了一组工具来管理安全策略、创建密钥、管理密钥和证书、签署JAR文件、验证签名以及支持密钥管理相关的其他功能。

一 keystore

密钥库是一个受保护的数据库,存储了密钥及密钥的可信证书项。密钥库的结构如下图所示:

技术分享

下面来介绍相关工具的使用。

二 keytool

Keytool是用于管理密钥和证书的工具,使用户能管理自己的公/私钥对以及相关的证书。keytool主要用于认证服务和使用数字签名验证数据的完整性。keytool工具使用X.509证书标准。该标准使用:

  • 抽象语法标记(Abstract Syntax Notation 1):描述证书数据.
  • 明确编码规则(Definite Encoding Rules):指定信息如何存储和传输。
  • 可辨别名称(Distinguished Name):描述持有者和颁发者字段的值。

j2SE复合包使用命令行工具的形式提供keytool工具。相关命令如下所示:

技术分享

下面演示一下如何使用这些命令:

2.1 使用keytool生成密钥对

keytool -genkey -alias myalias -keyalg RSA -keystore mykeystore -keypass mykeypass -storepass mystorepass

运行该命令后,会出现以下界面,逐一回答即可。

技术分享

回答完成后会在当前目录生成mykeystore文件,该文件是加密文件,无法直接打开。

2.2 密钥库相关操作

2.2.1 查看密钥库中的项


keytool -list -keystore mykeystore

输入密码:mykeystorepass,即可查看密钥库中的项,如下图所示:

技术分享


keytool -list -v -keystore mykeystore

-v选项,证书会以人类可读的格式显示,如下图所示:

技术分享

-rfc选项,证书会以Base64编码格式显示证书,如下图所示:

技术分享

2.2.2 从密钥库导出证书

keytool -export -alias myalias -file mycertificate.cer -keystore mykeystore

输入命令后,会提示输入密钥库口令,如下图所示:

技术分享

输入口令后,会在命令行当前目录生成证书文件,如下图所示:

技术分享

技术分享
技术分享

2.2.3 导入证书到密钥库

keytool -import -alias myclientalias -file mycertificate.cer -keypass clientkeypass -keystore clientstore -storepass clientpass

执行命令,即可导入证书,如下图所示:

技术分享

2.2.4 修改密钥库密码

keytool -storepasswd -new newstorepass -keystore mykeystore -storepass mystorepass

2.3 证书相关操作

2.3.1 显示证书内容

keytool -printcert -file mycertificate.cer

执行命令后,显示证书信息,如下图所示:

技术分享

2.3.2 创建证书签发请求

keytool -certReq -keystore mykeystore -file myCSR.csr -alias mycsralias

三 policytool

输入命令

policytool

界面如下图所示:

技术分享

四 jarsigner

jarsigner工具用于对JAR文件进行数字签名并验证JAR文件的签名和文件的的完整性。相关操作命令如下图所示:

技术分享

4.1 JAR文件签名

下面演示了为myJar.jar签名,并将签名后的JAR文件命名为mySignedJar.jar过程。

jarsigner -keystore C:\Users\Administrator\mykeystore -storepass mystorepass -keypass mykeypass -signedjar mySignedJar.jar myJar.jar myalias

执行命令后,会显示命令成功,如下图所示:

技术分享

3.2 验证签名后的JAR文件

jarsigner -keystore C:\Users\Administrator\mykeystore -verify -certs mySignedJar.jar

技术分享

【Java 安全技术探索之路系列:J2SE安全架构】之六:安全管理工具

标签:j2se-安全管理工   密钥   

原文地址:http://blog.csdn.net/allenwells/article/details/46459281

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!