`

java key tool 生成ca证书

    博客分类:
  • java
 
阅读更多

keytool生成证书

验证是否已创建过同名的证书
keytool -list -v -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit
删除已创建的证书
keytool -delete -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit

创建证书
1.服务器中生成证书:(注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)
keytool -genkey -alias tomcat -keyalg RSA -keystore d:\mykeystore -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass changeit -

storepass changeit
2.导出证书,由客户端安装:
keytool -export -alias tomcat -keystore d:\mykeystore -file d:\mycerts.cer -storepass changeit
3.客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中)
keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -file d:\mycerts.cer -storepass changeit

常出现的异常:“未找到可信任的证书”--主要原因为在客户端未将服务器下发的证书导入到JVM中,可以用
keytool -list -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass changeit
来查看证书是否真的导入到JVM中。

Keytool是一个Java数据证书的管理工具。 

keystore 
Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中 
在keystore里,包含两种数据: 
密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密) 
可信任的证书实体(trusted certificate entries)——只包含公钥 

Alias(别名) 
每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写 

keystore的存储位置 
在没有制定生成位置的情况下,keystore会存在与用户的系统默认目录, 
如:对于window xp系统,会生成在系统的C:\Documents and Settings\UserName\ 
文件名为“.keystore” 

keystore的生成

引用

keytool -genkey -alias tomcat -keyalg RSA   -keystore d:\mykeystore -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass changeit -storepass -validity 180

参数说明: 
-genkey表示要创建一个新的密钥 
-dname表示密钥的Distinguished Names, 
CN=commonName 
OU=organizationUnit 
O=organizationName 
L=localityName 
S=stateName 
C=country 
Distinguished Names表明了密钥的发行者身份 
-keyalg使用加密的算法,这里是RSA 
-alias密钥的别名 
-keypass私有密钥的密码,这里设置为changeit
-keystore 密钥保存在D:盘目录下的mykeystore文件中 
-storepass 存取密码,这里设置为changeit,这个密码提供系统从mykeystore文件中将信息取出 
-validity该密钥的有效期为 180天 (默认为90天)

cacerts证书文件(The cacerts Certificates File) 
改证书文件存在于java.home\lib\security目录下,是Java系统的CA证书仓库 

创建证书
1.服务器中生成证书:(注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost)
keytool -genkey -alias tomcat -keyalg RSA -keystore d:\mykeystore -dname "CN=localhost, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass changeit -storepass changeit
2.导出证书,由客户端安装:
keytool -export -alias tomcat -keystore d:\mykeystore -file d:\mycerts.cer -storepass changeit
3.客户端配置:为客户端的JVM导入密钥(将服务器下发的证书导入到JVM中)
keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -file d:\mycerts.cer -storepass changeit
生成的证书可以交付客户端用户使用,用以进行SSL通讯,或者伴随电子签名的jar包进行发布者的身份认证。

https站点密码验证使用弱口令:

现象:在Windows Vista上浏览一个被配置成使用弱密码(40位/56位加密)的HTTPS站点时,显示一个错误页面。

原因:在Windows Vista中,默认已经关闭了弱密码,仅开启强密码。

在生成证书选择加密方式 RSA

解决办法:对于访问者没有办法解决,只能等待https站点管理员修改验证使用的弱口令。

keytool生成根证书时出现如下错误:

keytool错误:java.io.IOException:keystore was tampered with,or password was incorrect

原因是在你的home目录下是否还有.keystore存在。如果存在那么把他删除掉,后再执行

或者删除"%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS 再执行

分享到:
评论

相关推荐

    使用 OpenSSL 创建生成CA 证书服务器客户端证书及密钥

    在网络安全中,OpenSSL 是一个强大的安全套接层 (SSL) 工具包,它包含了各种用于处理加密通信所需的工具,包括生成证书、密钥以及执行加密操作。本文将详细介绍如何使用 OpenSSL 创建和管理CA证书、服务器证书和...

    java代码生成数字证书

    然而,本案例中我们不使用keytool,而是通过编程方式生成证书。 4. **Java密钥和证书管理**:在Java中,`java.security.KeyPairGenerator`类用于生成密钥对,`java.security.cert.Certificate`接口代表证书,而`...

    usb.rar_USB KEY_java Ca_usb_证书

    USB KEY与Java CA(Java证书权威机构)相结合,可以实现更高级别的身份验证和数据加密。 Java CA是负责签发和管理数字证书的机构,其工作基于公钥基础设施(PKI)原理。Java CA为用户、服务器和其他实体提供信任...

    CA证书生成工具OpenSSL

    3. **自签CA证书**:作为CA,你可以用自己的私钥签署这个CSR,生成CA证书。 ```bash openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt ``` 4. **配置信任**:在操作系统或应用程序中,你...

    java调用openssl生成证书

    Java调用OpenSSL生成证书是一种常见的安全操作,用于创建数字证书,这些证书在网络安全中扮演着重要角色,例如HTTPS通信、服务器身份验证等。在这个过程中,我们通常会使用OpenSSL命令行工具,然后通过Java程序来...

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

    ### Java实现浏览器CA证书的签名和验证 #### 概述 随着互联网的普及和技术的发展,网络安全成为了维护用户信心和确保电子商务顺利进行的关键因素之一。在众多保障网络安全的技术中,数字证书及其背后的公钥基础...

    Java生成PublicKey方法

    Java 生成 PublicKey 方法 Java 生成 PublicKey 方法是 Java 开发语言中一个重要的知识点,本文将对其进行详细的讲解。 首先,需要了解什么是 PublicKey?PublicKey 是一种加密算法中使用的公钥,用于加密和解密...

    java生成X509证书jar包

    在这个场景中,我们不仅会讨论如何使用Java生成X509证书,还会涉及如何将其存储为PEM格式,以及如何将整个流程封装到一个jar包中。 首先,我们需要了解X509证书的基本结构。X509证书包含了主体信息(如组织名、组织...

    openssl 生成ca证书 pkcs12 pem格式转换

    OpenSSL 生成 CA 证书 PKCS#12 PEM 格式转换 OpenSSL 是目前最流行的 SSL 密码库工具,其提供了一个通用、健壮、功能完备的工具套件,用以支持 SSL/TLS 协议的实现。 OpenSSL 工具箱中包含了大量实用的命令和选项,...

    Linux平台openssl工具生成CA证书的命令 配置文件 证书

    本主题将详细讲解如何在Linux平台上使用OpenSSL工具生成CA(Certificate Authority)证书,以及涉及的相关文件类型和配置。 首先,让我们了解什么是CA证书。CA证书是由受信任的证书颁发机构(如上述的CA)签发的,...

    利用openssl生成CA证书的方法及证书

    在上述步骤中,`server.crt`、`client.crt`是已签署的服务器和客户端证书,`ca.crt`是自签名的CA证书,`ca.key`是CA的私钥,`server.csr`和`client.csr`是服务器和客户端的证书签名请求,`server.key`和`client.key`...

    利用fabric-ca生成区块链证书

    在开始生成证书之前,你需要先安装并启动Fabric CA服务器。这通常涉及到以下几个步骤: 1. 安装`fabric-ca-client`和`fabric-ca-server`二进制文件。 2. 配置CA服务器的配置文件(通常为`ca-config.yaml`),包括...

    certificate-generator-master_java证书生成_

    标题“certificate-generator-master_java证书生成_”暗示我们关注的是一个用于生成证书的Java项目,而描述“java 生成证书”进一步确认了这一点。我们将探讨Java中生成证书的基本概念、工具和步骤。 在Java中,...

    java生成证书 包括openssl

    Java 生成证书包括 OpenSSL Java 生成证书是指通过 Java 的 keytool 工具和 OpenSSL 库生成数字证书的过程。在 HTTPS 环境下,证书是必不可少的组件, play a crucial role in ensuring the security and ...

    java生成及验证android签名文件源码及生成签名文件

    签名过程涉及到了Java的关键组件——Java Key Store(JKS),这是Java提供的一个安全存储密钥和证书的容器。 生成Android签名文件通常使用Java的`keytool`命令行工具,它包含在Java Development Kit (JDK) 中。以下...

    java获取数字证书信息

    在本篇文章中,我们将深入探讨如何使用Java来获取数字证书的信息,包括使用TOMCAT和JDK搭建SSL服务的过程、如何用OpenSSL签发证书以及如何支持第三方CA等内容。 #### 一、使用TOMCAT和JDK搭建SSL服务 ##### 1. ...

    CA 证书软件制作

    4. **配置和分发**:将生成的CA证书和私钥妥善保管,并将CA证书分发给需要信任此CA的客户端。 汉化软件"zxca165"可能是简化了这个过程,提供了一个用户友好的界面,使得非技术人员也能轻松创建自签名CA证书。使用...

    java jdk生成安卓app证书(csdn)————程序.pdf

    接下来,我们使用`keytool`生成证书。在命令行窗口(cmd)中,执行以下命令: ```shell keytool -genkey -alias 证书别名 -keyalg RSA -keysize 2048 -validity 证书有效期 -keystore 证书文件名字 ``` 这里的参数...

Global site tag (gtag.js) - Google Analytics