证书(Certificate,也称public-key certificate)是用某种签名算法对某些内容(比如公钥)进行数字签名后得到的、可以用来当成信任关系中介的数字凭证。证书发行机构通过发行证书告知证书使用者或实体其公钥(public-key)以及其它一些辅助信息。证书在电子商务安全交易中有着广泛的应用,证书发行机构也称 CA(Certificate Authority)。
最近做项目用到证书,做个小结
是用RSA私钥加密,用证书解密,我觉得反过来也可以
之前用过RSA私钥加密,公钥解密,或公钥加密,私钥解密,
参考:http://happyqing.iteye.com/blog/2083360
感觉这两个很类似
证书一般包括证书信息和公钥,不包括私钥。 有的包括私钥。
可以用java命令:keytool 生成自签证书,其实生成证书很简单的
keytool 或 keytool -help 查看帮助
keytool参数:
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
(在没有指定生成位置的情况下,keystore会存在用户系统默认目录,如:对于window xp系统,会生成在系统的C:/Documents and Settings/UserName/文件名为“.keystore”)
-alias 产生别名
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)
-keyalg 指定密钥的算法 (如 RSA DSA(如果不指定默认采用DSA))
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的密码(获取keystore信息所需的密码)
-keypass 指定别名条目的密码(私钥的密码)
-dname 指定证书拥有者信息 例如: "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"
-list 显示密钥库中的证书信息 keytool -list -v -keystore 指定keystore -storepass 密码
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件 keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目 keytool -delete -alias 指定需删除的别 -keystore 指定keystore -storepass 密码
-printcert 查看导出的证书信息 keytool -printcert -file yushan.crt
-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore sage
-storepasswd 修改keystore口令 keytool -storepasswd -keystore e:/yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)
-import 将已签名数字证书导入密钥库 keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书
下面是各选项的缺省值。
-alias "mykey"
-keyalg "DSA"
-keysize 1024
-validity 90
-keystore 用户宿主目录中名为 .keystore 的文件
-file 读时为标准输入,写时为标准输出
创建证书
逐个询问生成
keytool -genkey
指定一部分生成
keytool -genkey -alias cms -keyalg RSA -keysize 1024 -validity 4000
C:\Documents and Settings\zhao>keytool -genkey -alias cms -keyalg RSA -keysize 1024 -validity 4000
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[CMS]: CMS
您的组织单位名称是什么?
[gongsi]: gongsi
您的组织名称是什么?
[zuzhi]: zuzhi
您所在的城市或区域名称是什么?
[chengsi]: chengshi
您所在的州或省份名称是什么?
[sheng]: sheng
该单位的两字母国家代码是什么
[CN]: CN
CN=CMS, OU=gongsi, O=zuzhi, L=chengshi, ST=sheng, C=CN 正确吗?
[否]: y
输入<cms>的主密码
(如果和 keystore 密码相同,按回车):
查看证书
C:\Documents and Settings\zhao>keytool -list -rfc
输入keystore密码:
Keystore 类型: JKS
Keystore 提供者: SUN
您的 keystore 包含 1 输入
别名名称: cms
创建日期: 2014-10-14
项类型: PrivateKeyEntry
认证链长度: 1
认证 [1]:
-----BEGIN CERTIFICATE-----
MIICNTCCAZ6gAwIBAgIEVDy1sDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJDTjEOMAwGA1UE
CBMFc2hlbmcxETAPBgNVBAcTCGNoZW5nc2hpMQ4wDAYDVQQKEwV6dXpoaTEPMA0GA1UECxMGZ29u
Z3NpMQwwCgYDVQQDEwNDTVMwHhcNMTQxMDE0MDUzMzM2WhcNMjUwOTI2MDUzMzM2WjBfMQswCQYD
VQQGEwJDTjEOMAwGA1UECBMFc2hlbmcxETAPBgNVBAcTCGNoZW5nc2hpMQ4wDAYDVQQKEwV6dXpo
aTEPMA0GA1UECxMGZ29uZ3NpMQwwCgYDVQQDEwNDTVMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ
AoGBAJtM5mFea7QOJ8749zN8VzxzaRXht7lGkmR7KgcgAUl+hB6mrhVTDe5VQMgmDk7Npgue0w1d
ZJJUAQATSTqFC+D2+I8dcdVNe+622kXLkpDROcJUKprduAvKakNUWwGsx4mrfaJplP/JaqkhKzxH
T3Xb2OSlAdj9/+/wkIsIxg+VAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAEuPvcFDsPw9uBDoAh5sy
52zCdiBNegazwZIPhXwfW2bxKPQqCKosCTHux3GPdI5ShK2p3BAxthuF072jC3DFtubtg2vRwZt9
bO9m1GeCIUVrCIbRv5Y0fMkOKRkHM7t6mbEHAvL/146XReIs8XQsjA8sFFHz0hCkbHd/auK4hek=
-----END CERTIFICATE-----
导出证书
默认导出到用户主目录
导出二进制格式证书
keytool -export -alias cms -file cms.cer -storepass 123456
导出base64格式证书
keytool -export -alias cms -file cms.cer -storepass 123456 -rfc
二进制格式证书也可以"另存为"base64格式的证书
双击打开cms.cer 选择详细信息 点击复制到文件 ……
指定keystore的
keytool -genkey -alias cms -keyalg RSA -keysize 1024 -keystore C:\mykeystore -validity 4000
keytool -list -keystore C:\mykeystore -rfc
keytool -export -alias cms -file cms.cer -keystore C:/mykeystore -storepass 123456 -rfc
java keystore导出证书,导出私钥,导出公钥
http://happyqing.iteye.com/blog/2139504
参考:
http://blog.chinaunix.net/uid-17102734-id-2830223.html
相关推荐
Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...
**Keytool** 是 Java 开发工具包(JDK)中的一个实用程序,用于管理密钥库(key stores),其中包括私钥(private keys)及其对应的公钥证书(public key certificates)。密钥库是一个存储密钥和证书的地方,可以用来管理和...
`keytool`是Java开发工具包(JDK)中提供的一个命令行工具,用于管理和创建密钥对以及数字证书,包括查询APK的签名信息。本篇将详细讲解如何使用`keytool`来查询APK的证书指纹,包括MD5、SHA1和SHA256等安全摘要算法...
总之,Java Keytool是Java环境下的强大工具,通过它我们可以方便地创建、管理和维护数字证书和密钥对,为网络安全提供基础保障。了解并熟练使用Keytool,对于进行安全的Java应用开发和系统运维至关重要。
下面是一些主要的KeyTool命令: 1. **生成密钥对**:`keytool -genkeypair` 使用此命令,你可以生成一个新的RSA或DSA密钥对,并将其存储在Keystore中。你需要提供Keystore的文件路径、别名、密码以及密钥对的相关...
Java和Keytool生成RSA密钥对是网络安全领域中常见的操作,尤其在进行数据加密、数字签名和SSL/TLS证书管理时。RSA是一种非对称加密算法,它基于两个密钥:公钥和私钥,公钥用于加密,私钥用于解密。Keytool是Java...
要从某个文件中导入某个证书,使用 keytool 工具的-import 命令。例如: keytool -import -file mycert.der -keystore mykeystore.jks 如果在 -keystore 选项中指定了一个并不存在的密钥仓库,则该密钥仓库将被...
这个命令会引导你通过一系列交互式提示,如个人信息、组织信息等,来创建证书请求。完成后,`mycert.jks` 文件将包含你的自签名证书。 在Java程序中,你可以使用 `KeyStore` 类来加载这个 keystore 文件,并使用 `...
在命令行中,你可以使用`keytool`命令来创建一个新的Key Pair(密钥对),并将其存储在Keystore中。例如,以下命令将生成一个名为`mykey`的密钥对,使用RSA算法,有效期为365天: ```shell keytool -genkeypair -...
Keytool是Java提供的一款工具,主要用于管理密钥对(公钥和私钥)以及数字证书,它允许用户创建、存储和管理这些安全组件。在本主题中,我们将深入探讨如何使用keytool生成证书及其相关概念。 首先,让我们了解什么...
Keytool是Java Development Kit(JDK)自带的一个命令行工具,用于管理公钥/私钥对和数字证书,这些在网络安全中扮演着至关重要的角色。 在Java环境中,keytool工具允许开发者生成、存储和管理密钥对。生成密钥对的...
下面是使用 KeyTool 的详细指南,包括创建密钥对、导出证书、将证书导入 Java 信任证书库等内容。 生成密钥对 KeyTool 提供了生成密钥对的功能,用于创建数字证书。可以使用以下命令生成密钥对: `keytool -...
- **生成CSR**:私钥生成后,利用`openssl req`命令创建CSR,填写相关信息,例如`openssl req -new -key private.key -out csr.pem`。 2. **keytool** keytool是Java JRE自带的一个工具,主要用于管理密钥和证书...
1. **创建Keystore**:使用`keytool -genkeypair`命令创建一个新的Keystore,需要提供像别名、密码、组织信息等详细参数。 2. **生成自签名证书**:通过`keytool -selfcert`命令,可以在Keystore内生成一个自签名的...
总结来说,通过`keytool`命令行工具,我们可以生成并管理数字证书,包括创建具有特定DN的证书,并结合`ConventPFX.java`这样的工具类,将证书导出为PFX格式,方便在不同环境下的使用。在进行这些操作时,务必确保...
### Java Keytool 使用详解 #### 一、Keytool 概述 `keytool` 是 Java 提供的一个强大的命令行工具,用于管理和维护 Java 应用程序的安全性,特别是密钥和证书方面。它允许用户创建、导入、导出、查看和删除密钥库...
3. **证书请求**:KeyTool可以创建证书请求(CSR,Certificate Signing Request),然后发送给证书颁发机构(CA)以获取签名的数字证书。 4. **信任锚点**:KeyTool也用于管理信任存储,其中包含了被系统信任的根...
`keytool`是Java开发工具包...了解和熟练使用`keytool`命令对于管理Java和Linux环境中的安全性至关重要,尤其是涉及SSL/TLS通信和数字签名等场景。通过正确配置和管理密钥库,可以确保网络通信的安全性和数据的完整性。
`keytool`是Java开发工具包(JDK)中...综上所述,`keytool`是Java环境下的强大工具,用于管理和操作数字证书,确保网络通信的安全性。通过熟练掌握其用法,开发者可以更好地保护自己的系统和服务免受潜在的安全威胁。
总结起来,KeyTool 1.6作为数字证书工具,是Java环境下的基础安全工具,对于任何需要处理加密通信的开发者来说,理解和熟练使用KeyTool都是非常必要的。通过掌握如何生成、管理以及交互数字证书,我们可以确保网络...