转自: http://hi.baidu.com/%D3%C0%B2%BB%D1%D4%C6%FA%B7%E8%D7%D3/blog/item/d669e5d4a00520cd50da4b70.html
简介
Java
自带的
keytool
工具是个密钥和证书管理工具。它使用户能够管理自己的公钥
/
私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户
/
服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥(以证书形式)。
keystore
是一个密码保护的文件,用来存储密钥和证书(也就是说,
keystore
中存储的有两类型
entries
);这个文件(默认的)位于你的
home
目录,也就是你登录到操作系统的用户名的那个目录。或者通过
-keystore
参数设为你指定的位置。需要说明的是:如果不通过
-keystore
来指定位置,将使用
home
目录中的默认
keystore
文件。
重要:
JDK\jre\lib\security
目录下面有一个
cacerts
的文件,就是一个
keystore
,其默认密码是
changeit
。如果一个
App Server
想建立一个安全的链接到另外一个
Server,
需要通过一个受信的数字证书,而这个证书就需要存储在
cacerts
中。
keytool
用来
import, export, list keystore
中内容的工具,还可以用来以测试为目的,生成自己签署的证书。
keytool
将密钥和证书储存在一个所谓的密钥仓库(
keystore
)中。缺省的密钥仓库实现将密钥仓库实现为一个文件。它用口令来保护私钥。
Java KeyStore
的类型
JKS
和
JCEKS
是
Java
密钥库
(KeyStore)
的两种比较常见类型
(
我所知道的共有
5
种,
JKS, JCEKS, PKCS12, BKS
,
UBER)
。
证书导入
Der/Cer
证书导入:
要从某个文件中导入某个证书,使用
keytool
工具的
-import
命令:
keytool -import -file mycert.der -keystore mykeystore.jks
如果在
-keystore
选项中指定了一个并不存在的密钥仓库,则该密钥仓库将被创建。
如果不指定
-keystore
选项,则缺省密钥仓库将是宿主目录中名为
.keystore
的文件。如果该文件并不存在,则它将被创建。
创建密钥仓库时会要求输入访问口令,以后需要使用此口令来访问。可使用
-list
命令来查看密钥仓库里的内容:
keytool -list -rfc -keystore mykeystore.jks
P12
格式证书导入:
keytool
无法直接导入
PKCS12
文件。
第一种方法是使用
IE
将
pfx
证书导入,再导出为
cert
格式文件。使用上面介绍的方法将其导入到密钥仓库中。这样的话仓库里面只包含了证书信息,没有私钥内容。
第二种方法是将
pfx
文件导入到
IE
浏览器中,再导出为
pfx
文件。新生成的
pfx
不能被导入到
keystore
中,报错:
keytool
错误:
java.lang.Exception:
所输入的不是一个
X.509
认证。新生成的
pfx
文件可以被当作
keystore
使用。但会报个错误
as unknown attr1.3.6.1.4.1.311.17.1,
查了下资料
,
说
IE
导出的就会这样
,
使用
Netscape
就不会有这个错误
.
第三种方法是将
pfx
文件当作一个
keystore
使用。但是通过微软的证书管理控制台生成的
pfx
文件不能直接使用。
keytool
不认此格式,报
keytool
错误:
java.io.IOException: failed to decrypt safe contents entry
。需要通过
OpenSSL
转换一下:
1
)
openssl pkcs12 -in mycerts.pfx -out mycerts.pem
2
)
openssl pkcs12 -export -in mycerts.pem -out mykeystore.p12
通过
keytool
的
-list
命令可检查下密钥仓库中的内容:
keytool -rfc -list -keystore mykeystore.p12 -storetype pkcs12
这里需要指明仓库类型为
pkcs12
,因为缺省的类型为
jks
。这样此密钥仓库就即包含证书信息也包含私钥信息。
P7B
格式证书导入:
keytool
无法直接导入
p7b
文件。
需要将证书链
RootServer.p7b
(包含根证书)导出为根
rootca.cer
和子
rootcaserver.cer
。
将这两个证书导入到可信任的密钥仓库中。
keytool -import -alias rootca -trustcacerts -file rootca.cer -keystore testkeytrust.jks
遇到是否信任该证书提示时,输入
y
keytool -import -alias rootcaserver -trustcacerts -file rootcaserver.cer -keystore testkeytrust.jks
总结
:
1)P12
格式的证书是不能使用
keytool
工具导入到
keystore
中的
2)The Sun's PKCS12 Keystore
对从
IE
和其他的
windows
程序生成的
pfx
格式的证书支持不太好
.
3)P7B
证书链不能直接导入到
keystore
,需要将里面的证书导出成
cer
格式,再分别导入到
keystore
。
分享到:
相关推荐
java 生成的有私钥的证书导入IE,或者把IE导出的证书导入java的KeyStore
首先,`.pfx`(Personal Information Exchange)文件是一种包含证书和私钥的二进制文件,广泛用于Windows系统中的SSL/TLS证书导入和导出。`.key`文件则通常代表私钥,而`.crt`(Certificate)文件则包含了公开的证书...
"PFX证书导入到USBKEY" PFX证书导入是指将PFX证书文件导入到USBKEY设备中,以便在USBKEY中存储和使用数字证书。PFX证书是一种常见的证书格式,包含了公钥、私钥和证书信息。 在PFX证书导入过程中,需要使用Windows...
标题提到的"keystoke证书转换nginx证书工具"是一个帮助管理员处理SSL/TLS证书的实用程序,特别针对从Java的`keytool.exe`生成的`.keystore`格式证书进行转换。`keytool`是Java Development Kit (JDK) 自带的一个...
使用 P12 格式证书导入时,keytool 无法直接导入 PKCS12 文件。可以通过将 pfx 文件导入到 IE 浏览器中,再导出为 cert 格式文件,然后使用上面介绍的方法将其导入到密钥仓库中。或者将 pfx 文件当作一个 keystore ...
除了转换,`keytool`还可以用于查看密钥信息、导入或导出证书、创建新的密钥对等操作。例如,你可以使用`-list`参数查看Keystore中的密钥信息: ```bash keytool -list -v -keystore myapp.keystore ``` 这个过程中...
证书导入工具有助于将这些证书添加到Java的信任库,以便Java运行时能够识别并信任这些服务器。 首先,了解Java的信任库——cacerts。这是Java标准安装中自带的一个包含了根证书颁发机构(CA)的证书集合。当Java...
本文将详细介绍如何在不同的证书格式之间进行转换,包括从`.cer`到`.jks`、从`.jks`到`.cer`、从`.p12`到`.pem`以及从`.cer`到`.pem`的过程。 ### 1. `.cer`格式转换至`.jks`格式 #### 背景介绍 `.cer`文件通常...
总之,keystore_export工具是Java开发环境中一个实用的辅助工具,帮助用户更高效地管理keystore中的密钥和证书,简化了在不同系统间迁移或共享密钥材料的过程。了解并正确使用这类工具对于任何涉及到数字证书和密钥...
- 信任服务器证书:将服务器的证书导入到客户端的Truststore中,确保客户端信任该服务器。 - 配置KeyStore:将客户端证书和私钥放入KeyStore,设置相应的密码。 - 配置SSLContext:如同服务器端,使用...
- **导入/导出**:可以导入已有的Keystore文件,或者将Keystore内容导出为其他格式。 - **生成密钥对**:在Keystore中生成RSA、DSA等类型的密钥对,用于SSL/TLS加密。 - **管理证书**:添加、删除或更新Keystore...
广泛的格式支持KeyStore Explorer支持多种KeyStore,密钥对,私钥和证书格式,并可在它们之间进行转换。请参阅功能,以获取受支持格式的列表。 CA的基本功能KeyStore Explorer可以用于创建自己的CA证书并使用它签名...
- 然后,使用Java的`keytool`命令行工具将证书导入到cacerts。`keytool`是Java SDK自带的工具,用于管理密钥对和证书库。 - 最后,指定cacerts文件的位置(通常在JDK安装目录下的`lib/security`目录下),运行`...
4. 导入证书:将CA签发的证书导入到KeyStore中。 5. 配置服务器:将KeyStore文件路径、密钥别名和密码配置到服务器的SSL配置文件中。 通过KeyStore Explorer,用户可以更直观地完成这些步骤,无需深入理解复杂的...
而`keystore.crt`则很可能是已经导出的证书文件,用于在不同的系统之间分享或导入到Keystore中。 综上所述,"keystore_oracle_"的主题涵盖了Oracle数据库的SSL和Keystore管理,这是数据库管理员和安全专业人员必须...
`keytool`是JDK自带的工具,用于创建、管理和查询KeyStore,包括导入和导出证书以及生成私钥对。私钥是加密过程中用于解密的密钥,而证书通常包含了公钥和发布者的相关信息,用于验证公钥的合法性。在SSL/TLS、数字...
在Java环境中,keytool是用于管理KeyStore的命令行工具,可以进行证书的创建、导入、导出等操作。本文将详细讲解如何使用Java程序导出JVM KeyStore中的私钥,以及这个过程在配置SSL(Secure Sockets Layer)时的作用...
- **导入/导出**:可以使用`keytool`将证书导入到`keystore`,或将`keystore`中的密钥对导出为单独的文件。 - **更新**:如果需要更改`keystore`中的信息,如更新密钥口令或添加新的密钥对,也可以通过`keytool`...
### Tomcat更换SSL证书方法(JKS与PFX转换) 在IT行业中,为了保障网络通信的安全性,使用SSL证书加密已经成为了一种标准做法。对于使用Tomcat作为应用服务器的企业或个人来说,有时候会遇到需要更换SSL证书的情况,...