`
- 浏览:
40143 次
- 性别:
- 来自:
成都
-
Java 中的 keytool.exe (位于 JDK\Bin 目录下)可以用来创建数字证书。
所有的数字证书是以一条一条(采用别名区别)的形式存入证书库的中。
证书库中的一条证书包含该条证书的私钥,公钥和对应的数字证书的信息。证书库中的一条
证书可以导出数字证书文件,数字证书文件只包括主体信息和对应的公钥。
Keytool 把钥匙和证书储存到一个keystore.默任的实现keystore的是一个文件.它用一个密码保护钥匙.
支持的算法和钥匙大小:
Keytool允许用户指定钥匙对和注册密码服务供应者所提供的签名算法。缺省钥匙对产生算法是“DSA”。假如私有钥匙是“DSA”类型,缺省签名算法是“SHA1withDSA”;假如私有钥匙是“RSA”类型,缺省算法是“MD5withRSA”。
当产生一个DSA钥匙对,钥匙必须在512-1024位之间,对任何算法缺省钥匙大小是1024位。
关于证书的几个概念:
公共钥匙 :是一个详细的实体的数字关联,并有意让所有想同这个实体发生信任关系的其他实体知道.公共钥匙用来检验签名;
数字签名:是实体信息用实体的私有钥匙签名(加密)后的数据.这条数据可以用这个实体的公共钥匙来检验签名(解密)出实体信息以鉴别实体的身份;
签名:用实体私有钥匙加密某些消息,从而得到加密数据;
私有钥匙:是一些数字,私有和公共钥匙存在所有用公共钥匙加密的系统的钥匙对中.公共钥匙用来加密数据,私有钥匙用来计算签名.公钥加密的消息只能用私钥解密,私钥签名的消息只能用公钥检验签名。
例子:为web服务生成一对JKS文件:
keytool -genkey -alias server_certs -validity 365 -keyalg RSA -keysize 1024 -
keystore server_keystore.jks
keytool -export -keystore server_keystore.jks -alias server_certs -file
server.cer
keytool -genkey -alias client_certs -validity 365 -keyalg RSA -keysize 1024 -
keystore client_keystore.jks
keytool -export -keystore client_keystore.jks -alias client_certs -file
client.cer
keytool -import -trustcacerts -keystore client_keystore.jks -file server.cer -
alias servercert
keytool -import -trustcacerts -keystore server_keystore.jks -file client.cer -
alias clientcert
实体:一个实体可以是一个人,一个组织,一个程序,一台计算机,一个商业,一个银行,或其他你想信任的东西。
具体操作:
1.新建 keytool -genkey -alias name -keypass password -keyalg RSA -validity 7 -keystore prac.keystore -providerpath D:\keytool
修改密码 keytool -keypasswd -alias duke -keypass dukekeypasswd -new newpass
2.查看 keytool -list -v -keystore prac.keystore -alias baidu
3.输出keystore到一个文件:testkey:
keytool -export -keystore prac.keystore -alias duke -rfc -file testkey
(保存在文件中的认证;Certicate stored in file)
查看该文件:keytool -printcert -file testkey
4.输入证书到一个新的truststore:
keytool -import -alias dukecert -file testkey -keystore truststore
我们也可以用如下命令生成一个自签名的证书:
keytool -genkey dname "CN=fingki,OU=server,O=server,L=bj,ST=bj,C=CN" -alias myCA -keyalg RSA -keysize 1024 -keystore myCALib -keypass 654321 -storepass 123456 -validity 3650
这条命令将生成一个别名为myCA的自签名证书,证书的keypair的密码为654321,证书中实体信息为 "CN=fingki,OU=server,O=server,L=bj,ST=bj,C=CN",存储在名为myCALib的keystore中(如果没有将自动生成一个),这个keystore的密码为123456,密钥对产生的算法指定为RSA,有效期为10年。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
SSL双向认证学习笔记 本文档主要介绍SSL双向认证的一些知识,涵盖了基础知识、keytool命令、...SSL双向认证学习笔记涵盖了基础知识、keytool命令、openssl安装等方面,旨在帮助读者了解SSL双向认证的原理和实现方法。
在命令行中,可以使用`keytool`工具创建一个新的密钥库(keystore)并生成一对密钥。例如: ```bash keytool -genkeypair -alias mykey -keyalg RSA -keystore myKeystore.jks ``` 这里的`-alias`参数定义了密钥...
【app逆向学习相关笔记】 在移动应用开发和安全领域,app逆向工程是一个重要的实践环节,它涉及对已安装应用程序的分析,以理解其工作原理、查找潜在漏洞或提取敏感信息。本笔记主要介绍了使用adb命令进行app逆向...
这个“个人学习Java安全的笔记.zip”压缩包文件,很可能包含了一位学习者在研究Java安全特性、漏洞防范以及最佳实践时所记录的资料。以下是基于Java安全的一些关键知识点的详细说明: 1. **Java安全模型**:Java的...
1. 创建密钥库:开发者使用`keytool`命令行工具或Android Studio内的界面创建一个密钥库,这是一个存储私钥和证书的文件。 2. 生成密钥:在密钥库中,开发者需要生成一对密钥,包括一个私钥和一个公钥。私钥用于...