使用KeytoolGUI生成Keystore

合集下载

keytool -import -keystore 使用方法

keytool -import -keystore 使用方法

keytool -import -keystore 使用方法keytool是Java 提供的一个用于管理密钥库和证书的命令行工具。

其中,-import -keystore是keytool提供的一组参数,用于导入证书到密钥库中。

本文将深入探讨keytool -import -keystore的使用方法,以及常见的应用场景。

keytool 简介keytool是Java 开发工具包(JDK)中的一部分,主要用于生成密钥对、管理密钥库和证书。

通过keytool,开发人员可以创建和管理用于加密通信的证书和密钥。

使用方法keytool -import -keystore主要用于将证书导入到指定的密钥库中。

以下是基本的使用方法:bashkeytool -import-file certificate.cer -keystore keystore.jks -alias myalias其中各个参数的含义如下:•-import: 表示执行导入操作。

•-file certificate.cer: 指定要导入的证书文件,通常是以.cer或.crt结尾的证书文件。

•-keystore keystore.jks: 指定要导入证书的密钥库文件,可以是已存在的或者新创建的。

•-alias myalias: 指定要为导入的证书指定的别名,用于在密钥库中标识该证书。

示例1. 创建新的密钥库bashkeytool -genkeypair-keyalg RSA -alias mykey -keystore mykeystore.jks -storepass keystorepass word -keypass keypassword这将生成一个新的密钥库mykeystore.jks,并生成一对RSA 密钥对,别名为mykey。

2. 生成证书请求bashkeytool -certreq-alias mykey -keystore mykeystore.jks -file mycertreq.csr -storepass keystorep assword -keypass keypassword这将为先前生成的密钥对生成一个证书请求文件mycertreq.csr。

生成公钥私钥证书

生成公钥私钥证书

执行上面的命令,会要求你输入密码,就是上面生成keystore的输入的密码“123456”,
生成的cer文件内容如下:
第四步 – 把认凭证件导入到truststore文件
执行下面的命令
Java代码 收藏代码
keytool -import -alias certificatekey -file selfsignedcert.cer -keystore truststore.jks
生成一个含有一个私钥的keystore文件
验证新生成的keystor而文件
导出凭证文件
把认凭证件导入到truststore文件
验证新创建的truststore文件
第一步 - 生成一个含有一个私钥的keystore文件
Java的Keytool工具可以把密钥和认证保存到keystore文件。 如果在windows上,keytool命令被放到Java的bin目录下(例如C:\Program Files\Java\jdk1.6.0_12)。如果是mac上是放在/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands目录下。
执行下列命令来生成keystore
Java代码 收藏代码
keytool -genkeypair -alias certificatekey -keyalg RSA -validity 7 -keystore keystore.jks
一旦执行了命令,你会被要求输入密码,这里我们输入“123456”。输入密码以后,需要输入一些key的详细信息,如下图:
执行命令后,会要求输入密码,同样是keystore的密码“123456”。

keytool -list -v -keystore 用法 -回复

keytool -list -v -keystore 用法 -回复

keytool -list -v -keystore 用法-回复keytool是Java开发中的一个命令行工具,用于管理Java密钥库(Keystore)。

它提供了创建、导入、查看和删除密钥库中的密钥对的功能。

在本文中,我们将介绍keytool list v keystore命令的用法,并逐步回答相关问题。

第一步:理解keytoolKeytool是Java开发人员的一个重要工具,用于生成和管理SSL证书、私钥和密钥库。

通过运行keytool命令,您可以执行许多与密钥库相关的任务,包括生成新的密钥对、查看密钥库中的现有密钥对以及导入/导出密钥对。

第二步:keytool命令格式的解释在命令提示符下键入“keytool list v keystore”命令将显示密钥库的详细信息。

以下是命令的结构:keytool list [options] [-v/verbose] [-rfc] [-Joption]在这个命令中,`list`是一个子命令,`-v` or `verbose`选项用于以详细或可读的方式显示密钥库的信息。

`-rfc`选项用于以RFC格式打印证书或CRT文件。

`-Joption`选项用于将选项传递给Java虚拟机进程。

第三步:运行keytool list v keystore命令要运行“keytool list v keystore”命令,您需要在命令提示符下键入以下内容:keytool list -v -keystore [keystore文件路径]其中,`-v`选项用于显示详细信息,`-keystore`选项后面是密钥库文件的路径。

例如,要查看名为“myKeystore.jks”的密钥库的详细信息,请键入以下命令:keytool list -v -keystore myKeystore.jks第四步:回答关于keytool list v keystore的问题下面是关于keytool命令的常见问题的回答:1. Q: keytool list v keystore命令的作用是什么?A: 这个命令用于显示密钥库的详细信息,包括密钥对、证书和其他相关信息。

数字证书中keytool命令使用说明

数字证书中keytool命令使用说明

数字证书中keytool命令使⽤说明这个命令⼀般在JDK\jre\lib\security\⽬录下操作keytool常⽤命令-alias 产⽣别名-keystore 指定密钥库的名称(就像数据库⼀样的证书库,可以有很多个证书,cacerts这个⽂件是jre⾃带的,你也可以使⽤其它⽂件名字,如果没有这个⽂件名字,它会创建这样⼀个)-storepass 指定密钥库的密码-keypass 指定别名条⽬的密码-list 显⽰密钥库中的证书信息-v 显⽰密钥库中的证书详细信息-export 将别名指定的证书导出到⽂件-file 参数指定导出到⽂件的⽂件名-delete 删除密钥库中某条⽬-import 将已签名数字证书导⼊密钥库-keypasswd 修改密钥库中指定条⽬⼝令-dname 指定证书拥有者信息-keyalg 指定密钥的算法-validity 指定创建的证书有效期多少天-keysize 指定密钥长度使⽤说明:导⼊⼀个证书命令可以如下:keytool -import -keystore cacerts -storepass 666666 -keypass 888888 -alias alibabacert -file C:\alibabajava\cert\test_root.cer 其中-keystore cacerts中的cacerts是jre中默认的证书库名字,也可以使⽤其它名字-storepass 666666中的666666是这个证书库的密码-keypass 888888中的888888是这个特定证书的密码-alias alibabacert中的alibabacert是你导⼊证书的别名,在其它操作命令中就可以使⽤它-file C:\alibabajava\cert\test_root.cer中的⽂件路径就是要导⼊证书的路径浏览证书库⾥⾯的证书信息,可以使⽤如下命令:keytool -list -v -alias alibabacert -keystore cacerts -storepass 666666要删除证书库⾥⾯的某个证书,可以使⽤如下命令:keytool -delete -alias alibabacert -keystore cacerts -storepass 666666要导出证书库⾥⾯的某个证书,可以使⽤如下命令:keytool -export -keystore cacerts -storepass 666666 -alias alibabacert -file F:\alibabacert_root.cer要修改某个证书的密码(注意:有些数字认证没有私有密码,只有公匙,这种情况此命令⽆效)这个是交互式的,在输⼊命令后,会要求你输⼊密码keytool -keypasswd -alias alibabacert -keystore cacerts这个不是交互式的,输⼊命令后直接更改Keytool -keypasswd -alias alibabacert -keypass 888888 -new 123456 -storepass 666666 -keystore cacertsOwner: CN=BOCTestCA, O=BOCTest, C=CNIssuer: CN=BOCTestCA, O=BOCTest, C=CNSerial number: 31e60001Valid from: Tue Oct 28 16:54:26 CST 2008 until: Sat Oct 28 16:54:26 CST 2028Certificate fingerprints:MD5: F0:35:F9:69:31:AE:87:01:6C:2D:56:BD:02:0A:16:4ASHA1: 24:EF:84:14:4E:BD:0D:37:59:2D:70:28:79:10:88:EA:0A:06:13:20Signature algorithm name: SHA1withRSAVersion: 3Extensions:#1: ObjectId: 2.5.29.19 Criticality=trueBasicConstraints:[CA:truePathLen:2147483647]#2: ObjectId: 2.5.29.15 Criticality=falseKeyUsage [DigitalSignatureNon_repudiationKey_EnciphermentData_EnciphermentKey_AgreementKey_CertSignCrl_Sign]#3: ObjectId: 2.5.29.14 Criticality=falseSubjectKeyIdentifier [KeyIdentifier [0000: E3 81 66 00 7B C9 8F 3F 5A 77 E0 6D 5C EB 41 42 ..f....?Zw.m\.AB 0010: C7 48 5A 10 .HZ.]]#4: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=falseAuthorityInfoAccess [[accessMethod: 1.3.6.1.5.5.7.48.1]#5: ObjectId: 2.5.29.31 Criticality=falseCRLDistributionPoints [[DistributionPoint:[CN=crl1, OU=crl, O=BOCTest, C=CN]]]#6: ObjectId: 2.5.29.32 Criticality=falseCertificatePolicies [[CertificatePolicyId: [2.5.29.32.0][PolicyQualifierInfo: [qualifierID: 1.3.6.1.5.5.7.2.182.1190010: 2E 31 37 31 2E 31 30 36 2F 63 70 73 2E 68 74 6D .171.106/cps.htm ]] ]]#7: ObjectId: 2.16.840.1.113730.1.1 Criticality=false NetscapeCertType [SSL CAS/MIME CAObject Signing CA]#8: ObjectId: 2.5.29.35 Criticality=falseAuthorityKeyIdentifier [KeyIdentifier [0000: E3 81 66 00 7B C9 8F 3F 5A 77 E0 6D 5C EB 41 42 ..f....?Zw.m\.AB 0010: C7 48 5A 10 .HZ.]]Trust this certificate? [no]: yesCertificate was added to keystore[root@orange3c bin]#NOTE: (xp: %JAVA_HOME%/jre/lib/security/cacerts, linux: $JAVA_HOME/jre/lib/security/cacerts)验证是否已创建过同名的证书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 changeitKeytool是⼀个Java数据证书的管理⼯具。

java keystore 创建证书

java keystore 创建证书

在Java中,你可以使用keytool命令行工具来创建和管理密钥库和证书。

下面是如何使用keytool创建一个自签名的证书的步骤:1.首先,打开命令提示符或终端。

2.使用以下命令创建一个新的密钥库(如果该文件已存在,keytool会抛出一个错误):bash复制代码keytool -genkey -alias mycert -keyalg RSA -keystore keystore.jks -keysize 2048在这个命令中:复制代码* `-genkey`表示生成密钥对。

* `-alias mycert`表示为这个证书设置一个别名"mycert"。

* `-keyalg RSA`表示使用RSA算法生成密钥对。

* `-keystore keystore.jks`表示将生成的密钥对存储在名为"keystore.jks"的文件中。

* `-keysize 2048`表示生成的密钥长度为2048位。

3. 在命令提示符或终端中,你将看到一些提示,要求你输入密钥库和密钥的密码,以及一些证书信息(如你的名字和组织)。

按照提示输入这些信息。

4. 完成后,你会看到一条消息,表示证书已经成功生成并存储在密钥库中。

5. 要查看密钥库中的证书,可以使用以下命令:bash复制代码keytool -list -alias mycert -keystore keystore.jks 这将列出与别名"mycert"关联的所有条目。

请注意,自签名证书只适用于测试和开发环境。

在生产环境中,你应该从受信任的证书颁发机构(CA)获取证书。

生成keystore签名查看签名信息的方法简介

生成keystore签名查看签名信息的方法简介

生成keystore签名查看签名信息的方法简介生成keystore签名查看签名信息的方法简介Android独有的安全机制,除了权限机制外,另外一个就是签名机制了。

签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查。

升级App用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的提示。

权限检查我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的protection level 为signature 或者signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。

至于签名机制的原理及其他作用,此不详述,本文主要介绍,签名文件key的'生成、用key去签名apk文件及查看签名的方法。

生成keystore创建keystore,需要用到keytool.exe (位于jdk_xxjrebin目录下),具体做法如下:复制代码代码如下:keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore#说明:# -genkey 产生密钥# -alias mykey 别名mykey# -keyalg RSA 使用RSA算法对签名加密# -validity 40000 有效期限4000天# -keystore demo.keystore对apk进行签名使用产生的keystore对apk签名,使用到的是jarsigner.exe ,该工具位于jdk_xxbin目录下,命令如下:复制代码代码如下:jarsigner -verbose -keystore demo.keystore -signedjar test_signed.apk test.apk mykey# test_signed.apk是签名之后的文件# test.apk是需要签名的文件另外需要注意的是,如果你的jdk版本在1.7以上,你在对apk签名时,需要加上这个参数:复制代码代码如下:-digestalg SHA1 -sigalg MD5withRSA否则同样会出现:Failure 的错误。

AndroidStudio默认keystore以及自定义keystore使用

AndroidStudio默认keystore以及自定义keystore使用

AndroidStudio默认keystore以及⾃定义keystore使⽤我们使⽤Android Studio 运⾏或测试我们的app 它使⽤⼀个默认的debug.keystore进⾏签名。

这个默认签名(keystore)是不需要密码的,它的默认位置在$HOME/.android/debug.keystore,如果不存在Android studio会⾃动创建它。

例如我的debug.keystore就在C:\Users\Administrator\.android\debug.keystore。

再我们正式发布项⽬的时候是不能使⽤debug.keystore的。

有时候debug模式下我们需要使⽤⾃⼰的keystore来进⾏签名,⽐如在使⽤第三⽅SDK时候需要提交我们应⽤包名以及签名来获取APPKEY,那么测试环境下我不希望每次都需要⼿动签名导出APK来进⾏测试,这⾥⾯我们可以使⽤【storeFile file】来指定我们⾃⼰的keystore AS编译后就使⽤我们指定的keystore进⾏签名,避免每次⼿动签名打包⽅便我们调试。

官⽅地址: https:///studio/publish/app-signing.html下⾯我们来介绍如何使⽤Android Studio创建⼀个新的keystore,并发布我们的apk1 创建keystore1.1 Build --->> Generate Signed APK1.2 Create New1.3 填写相关信息,⾥⾯内容什么含义⾃⾏Google1.4 输⼊密码1.5 选择发布app的路径默认即可选择release或者debug⽅式发布OK,发布成功,可以到⽂件夹下⾯找到发布的apk2 使⽤⾃定义keystore下⾯我们来配置如何在debug的时候使⽤我们⾃定义的keystore。

2.1 还是要新建⼀个keystore,就⽤上⾯的也可以。

2.2 在项⽬上右键 Open Module Settings.然后看图就可以了,选择路径,把密码填上,该填的都填好。

.keystore文件用法

.keystore文件用法

.keystore文件用法Keystore文件是Java开发中常用的一个文件类型,用于存储和管理密钥。

它通常用于保护应用程序的加密通信和身份验证。

在Android开发中,keystore 文件尤其重要,因为它是生成数字签名证书的基础。

在本篇文章中,我们将介绍keystore文件的用法。

一、创建keystore文件要创建keystore文件,您可以使用JavaKeytool工具。

以下是一些基本的命令:1.打开命令行终端或控制台。

2.导航到您的Java安装目录下的"bin"文件夹。

3.输入以下命令来创建一个新的keystore文件:```arduinokeytool-genkey-v-keystorekeystore.jks-aliasalias_name-keyalgRSA-keysize2048-validity10000```这将生成一个名为"keystore.jks"的keystore文件,其中"alias_name"是您为该密钥库设置的别名。

您可以根据需要更改这些参数。

二、访问keystore文件中的密钥要访问keystore文件中的密钥,您可以使用JavaKeytool工具的"list"命令。

以下是访问密钥的基本命令:```arduinokeytool-list-v-keystorekeystore.jks```执行此命令后,您将看到一个包含密钥列表的列表。

您可以通过输入密钥的别名来查看密钥的详细信息。

三、导出密钥当您需要将密钥用于外部应用程序(如Android应用程序的数字签名)时,您需要将密钥导出为PEM或PKCS#12格式。

以下是导出密钥的基本命令:```arduinokeytool-export-aliasalias_name-keystorekeystore.jks-filemy_public_key.pem```这将导出名为"my_public_key.pem"的文件,其中包含您的公钥。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1.启动KeytoolGUI工具 (3)
2.信任列表keystore的制作 (3)
3.服务器证书keystore的制作 (5)
3.1.产生keystore,导入信任根证书 (5)
3.2.产生密钥对,生成请求 (6)
3.2.1.产生密钥对 (6)
3.2.2.导入CA签发的服务器cer证书 (8)
3.3.从pfx文件导入 (9)
4.注意事项 (11)
KeytoolGUI工具是一个Java图形界面的密钥库管理工具,支持JKS、PKCS12(pfx文件)等密钥库格式。

利用该工具可以非常方便的生成信任列表keystore、服务器证书keystore,不必再使用繁琐且易出错的keytool命令行。

1.启动KeytoolGUI工具
启动该工具需要有jre环境,最好是1.4版本。

设置好jre/bin路径,达到在命令行中键入java命令可以出现提示的效果后,运行run.cmd即可启动。

启动后界面如下:
2.信任列表keystore的制作
信任列表keystore的生成就是将根证书导入keystore中。

选择File菜单中的New Keystore,新建一个jks格式的keystore,如图:
选择JKS格式,点击OK。

出现如下界面:(和第一张图相比,工具栏图标已经可见)
点击工具栏的导入信任根证书图标(如下图),或按Ctrl+T。

出现如下界面,此时即可选择根证书文件执行导入。

导入过程中会提示该证书无法验证信任路径,并将证书信息显示出来,询问是否信任等对话框,一直确定后,给根证书任意取一个别名,即完成了根证书的导入工作。

完成导入工作后,即可将该keystore保存,点击保存按钮后,出现设置Keystore密码的界面,如下图:
输入至少六位的密码,选择保存路径后,信任证书列表Keystore即成功生成。

一般来说,在根证书中只需导入顶级根证即可。

客户端浏览器中只要安装了相应的二级根证,二级根证所颁发的证书即可获得信任,出现在证书选择框中。

3.服务器证书keystore的制作
3.1. 产生keystore,导入信任根证书
首先也是需要新建一个JKS格式的keystore文件,和产生信任列表的Keystore 步骤相同。

然后将根证书、颁发服务器证书的二级根证书导入为信任证书,和产生信任列表Keystore步骤相同。

生成服务器证书keystore有两种方式,一种是产生密钥对,生成请求到CA 签发后再导入到keystore中,一种是将pfx证书直接导入。

下边是两种方式的介绍:
3.2. 产生密钥对,生成请求
3.2.1.产生密钥对
点击工具栏产生密钥对的图标,如图:
点击后出现选择密钥对算法的选择框,如下图:默认是DSA算法,注意一定要选择RSA算法!!!
点击OK按钮后,即产生密钥对,之后会要求输入证书的DN信息,如图:
需要注意的是,如果该应用是用域名来访问,CN项需要填写域名,如果是用IP来访问,CN项需要填写IP,否则在访问时会出现警告信息。

填写完毕后,为该证书取一个别名,默认是CN项所填的内容,一般我们会把它命名为webserver:
点击OK,又会要求给该密钥对一个保护密码:如图:
输入密码后,点击OK,即提示密钥对产生成功。

产生成功密钥对之后,该密钥对即被列出来,在其上点击右键,出现如下菜单:
选择Genereate CSR选项,生成请求,选择存储路径后,即可将请求保存到文件中。

3.2.2.导入CA签发的服务器cer证书
在CA根据请求签发cer证书后,即可将cer证书导入到Keystore中。

在密钥对列表上点击右键,选择菜单中的Import CA Reply,如图:
之后将会提示安装成功。

注意:如果安装失败,请注意服务器证书是否带有头尾,即----BEGIN
CERTIFICATE----- 和-----END CERTIFICATE-----,尾部还需要多加一个
回车。

完成以上工作后,即可将该keystore保存,点击保存按钮后,出现设置Keystore密码的界面,如下图:
输入至少六位的密码,选择保存路径后,服务器证书Keystore即成功生成。

3.3. 从pfx文件导入
新建Keystore文件,点击工具栏图标,如图:
之后会出现选择pfx、p12格式的证书的文件选择框,如图:
选择一个pfx文件后,即被要求输入该pfx文件的保护密码,如图:
输入密码后,出现如下界面:
证书序列号会出现在列表中,选择后,点击Import按钮,输入一个别名:
输入别名后,点击OK,要求输入保护密码:
输入至少6位的密码后,点击OK。

即会提示导入成功。

完成以上工作后,即可将该keystore保存,点击保存按钮后,出现设置Keystore密码的界面,如下图:
输入至少六位的密码,选择保存路径后,服务器证书Keystore即成功生成。

4.注意事项
1、Keystore保护密码和密钥对(Key pair)的保护密码是不同的两个密码。

在各平
台下配置时需要注意区分,一般来说我们都会把这两个密码设为同一密码。

2、除指定Keystore外,如Weblogic可能还需要指定服务器的公钥证书。

3、在Websphere中,不要覆盖原有的信任列表文件和服务器证书文件,而是重
新建立一个SSL配置,指定keystore。

然后将需要更改的SSL端口指定到该配置即可。

因为如果将原有设置(DefaultSSLSettings)删除,可能会导致系统异常。

4、作服务器配置时,必须将原有系统的配置文件、默认Keystore文件作备份。

相关文档
最新文档