包含javakeypass的词条

博主:adminadmin 2022-12-10 23:21:08 60

本篇文章给大家谈谈javakeypass,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java的keytool命令都有哪些用途

使用Java自带的keytool命令,在命令行生成。

1、生成服务器端私钥kserver.keystore文件

keytool -genkey -alias serverkey -validity 1 -keystore kserver.keystore

2、根据私钥,导出服务器端安全证书

keytool -export -alias serverkey -keystore kserver.keystore -file server.crt

3、将服务器端证书,导入到客户端的Trust KeyStore中

keytool -import -alias serverkey -file server.crt -keystore tclient.keystore

4、生成客户端私钥kclient.keystore文件

keytool -genkey -alias clientkey -validity 1 -keystore kclient.keystore

5、根据私钥,导出客户端安全证书

keytool -export -alias clientkey -keystore kclient.keystore -file client.crt

6、将客户端证书,导入到服务器端的Trust KeyStore中

keytool -import -alias clientkey -file client.crt -keystore tserver.keystore

生成的文件分成两组,服务器端保存:kserver.keystore tserver.keystore 客户端保存:kclient.keystore tclient.kyestore。

keytool -import -alias serverkey -file server.crt -keystore tclient.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

keytool -genkey -alias clientkey -validity 1 -keystore kclient.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

keytool -import -alias clientkey -file android.crt -keystore kclient.bks -storetype BKS

keytool -import -alias csswebkey -file ca.crt -keystore kclient.bks -storetype BKS

keytool -import -alias cakey -file ca.crt -keystore tclient.bks -storetype BKS

keytool -import -alias serverkey -file server.crt -keystore tclient.bks -storetype BKS

keytool -import -alias serverkey -file server.crt -keystore tclient.bks -storetype BKS

keytool -import -alias serverkey -file server.crt -keystore client.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

I had the same issue and here are the steps to properly create a custom keystore that can be used for debugging in eclipse:

Basically what you should do is that change both storepasswd and keypasswd for the alias androiddebugkey to "android".

here are the commands:

keytool -changealias -keystore mykeystore.keystore -alias myalias -destalias androiddebugkey

keytool -keypasswd -keystore mykeystore.keystore -alias androiddebugkey

keytool -storepasswd -keystore mykeystore.keystore

ant 自动打包apk

key.alias= 别名

此别名一开始以为可以随便写,后来多次尝试发现乱写打包一定不成功,此别名要与第一次生成签名时的别名一至,由于签名不是我申请的,申请签名的同事也忘记了签名的别名,如此只好找工具看一下签名的信息了,其实工具不用找了,在jdk中有

直接keytool -list -v -keystore xxxx.keystore -storepass 密码  签名的信息就有了

keytool -list -v -keystore keystoreName -storepass keystorePassword

jdk的keytool生成jks及获取jks的信息

生成jks

命令:

keytool -genkeypair -alias myAlias -keyalg RSA -keypass myKeyPass -keystore myKeystore.jks -storepass myStorePass -storetype jks

myAlias: 密钥对的别名

myKeyPass: 私玥保护口令

myKeystore.jks: Keystore 文件名

myStorePass: keystore保护口令

storetype: 证书库类型

例如:

keytool -genkeypair -alias uc -keyalg RSA -keypass ucpass -keystore uc.jks -storepass ucstorepass -storetype jks

导入证书到制定的证书库

keytool -import -alias aliasName -keystore keystorePath -file certPath

aliasName:证书别名

keystorePath: keystore路径

certPath: 证书路径

通过别名查询证书库中是否存在证书

keytool -list -keystore keystorePath -alias aliasName

aliasName:证书别名

keystorePath: keystore路径

certPath: 证书路径

从JKS中导出证书

keytool -list -v -keystore jksName.jks

keytool -export -alias aliasName -keystore jksName.jks -storepass 密钥库口令 -file certName.cer

解决unable to find valid certification path to requested target

java调用https请求如果网站的跟证书不存在于jre的默认证书库中,会出现上述异常

解决方法可以将网站的证书导入到jre的证书库中

导入方法:

jdk安装后bin目录中为啥没有exe文件

有的,是不是隐藏扩展名了。

javac:Java编译器,将Java源代码换成字节代

java:Java解释器,直接从类文件执行Java应用程序代码

appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器

javadoc:根据Java源代码及其说明语句生成的HTML文档

jdb:Java调试器,可以逐行地执行程序、设置断点和检查变量

javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件

Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义

jar:多用途的存档及压缩工具,是个java应用程序,可将多个文件合并为单个JAR归档文件。

htmlConverter——命令转换工具。

native2ascii——将含有不是Unicode或Latinl字符的的文件转换为Unicode编码字符的文件。

serialver——返回serialverUID。语法:serialver [show] 命令选项show是用来显示一个简单的界面。输入完整的类名按Enter键或"显示"按钮,可显示serialverUID。

补充详细:

javac.exe

用法:javac 选项 源文件

可能的选项包括:

-g 生成所有调试信息

-g:none 生成无调试信息

-g:{lines,vars,source} 生成只有部分调试信息

-O 优化;可能妨碍调试或者增大类文件

-nowarn 生成无警告

-verbose 输出关于编译器正在做的信息

-deprecation 输出使用了不鼓励使用的API的源程序位置

-classpath 路径 指定用户类文件的位置

-sourcepath 路径 指定输入源文件的位置

-bootclasspath 路径 覆盖自举类文件的位置

-extdirs 目录(多个) 覆盖安装的扩展类的位置

-d 目录 指定输出类文件的位置

-encoding 编码 指定源文件中所用的字符集编码

-target 版本 生成指定虚拟机版本的类文件

-help Print a synopsis of standard options

appletviewer.exe

用法:appletviewer url

其中, 包括:

-debug 在 Java 调试器中启动 applet 小程序查看器

-encoding 指定由 HTML 文件使用的字符编码

-J 向 Java 解释器传递参数

-J 选项不是标准选项,如有更改,不另行通知。

====================

jar.exe

用法:jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...

选项:

-c 创建新的存档

-t 列出存档内容的列表

-x 展开存档中的命名的(或所有的〕文件

-u 更新已存在的存档

-v 生成详细输出到标准输出上

-f 指定存档文件名

-m 包含来自标明文件的标明信息

-0 只存储方式;未用ZIP压缩格式

-M 不产生所有项的清单(manifest〕文件

-i 为指定的jar文件产生索引信息

-C 改变到指定的目录,并且包含下列文件:

如果一个文件名是一个目录,它将被递归处理。

清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。

示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:

jar cvf classes.jar Foo.class Bar.class

示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有

文件存档到一个名为 'classes.jar' 的存档文件中:

jar cvfm classes.jar mymanifest -C foo/ .

javadoc.exe

用法:javadoc [options] [packagenames] [sourcefiles] [classnames] [@files]

-overview 读取 HTML 格式的概述文档

-public 仅显示 public 类和成员

-protected 显示 protected/public 类和成员(缺省)

-package 显示 package/protected/public 类和成员

-private 显示所有类和成员

-help 显示命令行选项

-doclet 通过候选 doclet 生成输出

-docletpath 指定 doclet 类文件的查找位置

-sourcepath 指定源文件的查找位置

-classpath 指定用户类文件的查找位置

-exclude Specify a list of packages to exclude

-subpackages Specify subpackages to recursively load

-breakiterator Compute 1st sentence with BreakIterator

-bootclasspath 覆盖自举类加载器所加载的类文件的位置

-source Provide source compatibility with specified release

-extdirs 覆盖已安装的扩展的位置

-verbose 有关 Javadoc 所做工作的输出信息

-locale 所用的 Locale,例如 en_US 或 en_US_WIN

-encoding 源文件编码名称

-J 将 直接传给运行时系统

由标准 doclet 提供:

-d 输出文件的目标目录

-use 创建类和包的用法页

-version 包含 @version 段

-author 包含 @author 段

-docfilessubdirs Recursively copy doc-file subdirectories

-splitindex 将索引分为每个字母对应一个文件

-windowtitle 文档的浏览器窗口标题

-doctitle 包含包索引页(首页)的标题

-header 包含每一页的页眉文本

-footer 包含每一页的页脚文本

-bottom 包含每一页的页底文本

-link Create links to javadoc output at

-linkoffline Link to docs at using package list at

-excludedocfilessubdir :.. Exclude any doc-files subdirectories with given name.

-group :.. Group specified packages together in overview page

-nocomment Supress description and tags, generate only declarations.

-nodeprecated 不包含 @deprecated 信息

-noqualifier ::... Exclude the list of qualifiers from the output.

-nosince Do not include @since information

-nodeprecatedlist 不生成不鼓励使用的列表

-notree 不生成类层次

-noindex 不生成索引

-nohelp 不生成帮助链接

-nonavbar 不生成导航栏

-quiet Do not display status messages to screen

-serialwarn Generate warning about @serial tag

-tag :: Specify single argument custom tags

-taglet The fully qualified name of Taglet to register

-tagletpath The path to Taglets

-charset Charset for cross-platform viewing of generated documentation.

-helpfile 包含帮助链接功能链接到目标的文件

-linksource Generate source in HTML

-stylesheetfile 改变所生成文档的样式的文件

-docencoding 输出编码名称

javah.exe

用法:javah [options]

其中 [options] 包括:

-help 打印该帮助信息

-classpath 类的加载路径

-bootclasspath 自举类的加载路径

-d 输出目录

-o 输出文件(仅能使用 -d 或 -o 之一)

-jni 生成 JNI 风格的头文件(缺省)

-old 生成 JDK1.0 风格的头文件

-stubs 生成 stubs 文件

-version 打印版本信息

-verbose 输出有关本命令所做工作的信息

-force 始终写输出文件

指定 时必须使用全名(例如 java.lang.Object)。

javaw.exe

====================

HtmlConverter.exe

用法:HtmlConverter [-option1 value1 [-option2 value2 [...]]] [-simulate] [filespecs]

其中,选项包括:

-source: 获取源文件的路径。 缺省值:

-dest: 写入已转换文件的路径。 缺省值:

-backup: 写备份文件的路径。 缺省值: _BAK

-f: 强制覆写备份文件。

-subdirs: 应处理子目录中的文件。

-template: 模板文件的路径。 如果不确定,请使用缺省值。

-log: 写日志的路径。 如果没有提供,则不会写入任何日志。

-progress: 转换时显示进度。 缺省值: true

-simulate: 在没有进行转换时显示特定于转换的信息。

-latest: 使用最新的 JRE 支持发行版 mimetype。

-gui: 显示转换程序的图形用户界面。

filespecs: 用空格分开的文件说明列表。 缺省值: "*.html *.htm" (需要引号)

orbd.exe

用法:orbd 选项

其中,选项 包括:

-port 启动 ORBD 的激活端口,缺省值为 1049 (可选)

-defaultdb ORBD 文件的目录,缺省值为 "./orb.db" (可选)

-serverid ORBD 的服务器标识符,缺省值为 1 (可选)

-ORBInitialPort 初始端口(必需)

-ORBInitialHost 初始主机名称(必需)

====================

policytool.exe

用法:policytool [选项]

[-file ] 规则文件位置

====================

rmic.exe

用法:rmic 选项 类名

其中 选项 包括:

-keep 不删除中间生成的源文件

-keepgenerated (同 "-keep")

-v1.1 为 1.1 stub 协议版本创建 stubs/skeleton

-vcompat (缺省)创建与 1.1 和

1.2 stub 协议版本兼容的 stubs/skeleton

-v1.2 仅为 1.2 stub 协议版本创建 stubs

-iiop 为 IIOP 创建 stubs。当使用该选项时,选项还应包括:

-always 总创建 stubs (即使在它们同时出现时〕

-alwaysgenerate (同 "-always")

-nolocalstubs 不创建为同一进程优化的 stubs

-idl 创建 IDL。当使用该选项时,选项还应包括:

-noValueMethods 不生成值类型的方法

-always 总创建 IDL (即使在它们同时出现时〕

-alwaysgenerate (同 "-always")

-g 一般调试信息

-depend 以递归方式重编译过期的文件

-nowarn 不警告

-nowrite 不将编译过的类写入到文件系统

-verbose 输出有关编译器所做工作的信息

-classpath 指定输入源和类文件的查找位置

-sourcepath 指定用户源文件的查找位置

-bootclasspath 覆盖自举类文件的位置

-extdirs 覆盖安装扩展类的位置

-d 指定所生成类文件的放置位置

-J 将参数传给 java 解释程序

====================

rmid.exe

用法:rmid

其中, 包括:

-port 指定供 rmid 使用的端口

-log 指定 rmid 将日志写入的目录

-stop 停止当前的 rmid 调用(对指定端口)

-C 向每个子进程传递参数(激活组)

-J 向 java 解释程序传递参数

====================

rmiregistry.exe

用法: rmiregistry 选项 端口

其中,选项 包括:

-J 将参数传递到 java 解释程序

====================

serialver.exe

用法:serialver [-classpath classpath] [-show] [classname...]

====================

servertool.exe

欢迎使用 Java IDL 服务器工具

请在提示处输入命令

servertool help

可用命令:

-------------------

register - 注册一个可激活的服务器

unregister - 取消服务器注册

getserverid - 返回应用程序名称的服务器标识符

list - 列举所有已注册服务器

listappnames - 列举当前定义的应用程序名称

listactive - 列举当前活动的服务器

locate - 将已注册服务器定位在特定类型的端口

locateperorb - 为已注册服务器的特定对象请求代理程序定位端口。

orblist - 对象请求代理程序 (orb) 名称及其映射列表

shutdown - 关闭一个已注册服务器

startup - 启动一个已注册服务器

help - 取得帮助

quit - 退出此工具

====================

rmic

功能说明:

rmic 为远程对象生成 stub 和 skeleton。

语法:

rmic [ options ] package-qualified-class-name(s)

补充说明:

rmic 编译器根据编译后的 Java 类(含有远程对象实现)名,为远程对象生成 stub 和 skeleton(远程对象是指实现 java.rmi.Remote 接口的对象)。在 rmic 命令中所给的类必须是经 javac 命令成功编译且是完全包限定的类。

命令选项

-classpath[路径] 指定 rmic 用于查询类的路径。如果设置了该选项,它将覆盖缺省值或 CLASSPATH 环境变量。目录用冒号分隔。

-d[目录] 指定类层次的根目录。此选项可用来指定 stub 和 skeleton 文件的目标目录。

-depend 使编译器考虑重新编译从其它类引用的类。 一般来说,它只重新编译从源代码引用的遗漏或过期的类。

-g 允许生成调试表格。调试表格含有行号和局部变量的有关信息,即 Java 调试工具所使用的信息。缺省情况下,只生成行号。

-J 与 -D 选项联用,它将紧跟其后的选项( -J 与 -D 之间无空格)传给 java 解释器。

-keepgenerated 为 stub 和 skeleton 文件保留所生成的 .java 源文件,并将这些源文件写到与 .class 文件相同的目录中,如果要指定目录,则使用 -d 选项。

-nowarn 关闭警告。如果使用该选项,则编译器不输出任何警告信息。

-show 显示 rmic 编译器的 GUI(图形用户界面)。输入一个或多个包限定类名(以空格分隔),并按回车键或“显示”按钮,创建 stub 和 skeleton。

-vcompat (缺省值)创建与 JDK 1.1 和 1.2 stub 协议版本都兼容的 stub 和 skeleton。

-verbose 使编译器和链接器输出关于正在编译哪些类和正在加载哪些类文件的信息。

-v1.1 创建 JDK 1.1 stub 协议版本的 stub 和 skeleton。

-v1.2 只创建 JDK 1.2 stub 协议版本的 stub。

=================================

rmid

功能说明:

rmid 启动激活系统守护进程,以便能够在 Java 虚拟机上注册和激活对象。

语法:

rmid [-port port] [-log dir]

补充说明:

rmid 工具启动激活系统守护进程。必须先启动激活系统守护进程,才能向激活系统注册可被激活的对象或在 Java 虚拟机上激活可被激活的对象。

命令选项

-C某些命令行选项 指定一个选项,在创建每个 rmid 的子守护进程(激活组)时,该选项以命令行参数的形式传给该子守护进程。

-log[目录] 指定目录的名称,激活系统守护进程在该目录中写入其数据库及相关信息。缺省状态下,将在执行 rmid 命令的目录中创建一个 log 目录。

-port[端口] 指定 rmid 的注册服务程序所使用的端口。激活系统守护进程将 ActivationSystem 与该注册服务程序中的名称java.rmi.activation.ActivationSystem 捆绑在一起。

-stop 停止 -port 选项所指定端口上的当前 rmid 调用。若未指定端口,则将停止在端口 1098 上运行的 rmid。

=============================

rmiregistry

功能说明:

rmiregistry 命令可在当前主机的指定端口上启动远程对象注册服务程序。

语法:

rmiregistry [port]

补充说明:

rmiregistry 命令在当前主机的指定 port 上创建并启动远程对象注册服务程序。如果省略 port,则注册服务程序将在 1099 端口上启动。rmiregistry 命令不产生任何输出而且一般在后台运行。远程对象注册服务程序是自举命名服务。主机上的 RMI 服务器将利用它将远程对象绑定到名字上。客户机即可查询远程对象并进行远程方法调用。注册服务程序一般用于定位应用程序需调用其方法的第一个远程对象。该对象反过来对各应用程序提供相应的支持,用于查找其它对象。java.rmi.registry.LocateRegistry 类的方法可用于在某台主机或主机和端口上获取注册服务程序操作。java.rmi.Naming 类的基于 URL 的方法将对注册服务程序进行操作,并可用于查询远程对象、将简单(字符串)名称绑定到远程对象、将新名称重新绑定到远程对象(覆盖旧绑定)、取消远程对象的绑定以及列出绑定在注册服务程序上的 URL。

=============================

serialver

功能说明:

serialver 命令返回 serialVersionUID。

语法:

serialver [ 命令选项 ]

补充说明:

serialver 以适于复制到演变类的形式返回一个或多个类的 serialVersionUID。不带参数调用时,它输出用法行。

命令选项

-show 显示一个简单的用户界面。输入完整的类名并按回车键或“显示”按钮可显示 serialVersionUID。

================================

jarsigner

功能说明:

为 Java 归档 (JAR) 文件产生签名,并校验已签名的 JAR 文件的签名。

语法:

jarsigner [ 命令选项 ] jar-file alias

jarsigner -verify [ 命令选项 ] jar-file

补充说明:

jarsigner 工具用于两个目的:

1:为 Java 归档 (JAR) 文件签名

2:校验已签名的 JAR 文件的签名和完整性

命令选项

-keystore[url] 指定密钥仓库的 URL。缺省值是用户的宿主目录中的 .keystore 文件,它由系统属性“user.home”决定。

-storetype[storetype] 指定要被实例化的密钥仓库类型。默认的密钥仓库类型是安全属性文件中 "keystore.type" 属性值所指定的那个类型,由 java.security.KeyStore 中的静态方法 getDefaultType 返回。

-storepass[password] 指定访问密钥仓库所需的口令。这仅在签名(不是校验)JAR 文件时需要。在这种情况下,如果命令行中没有提供 -storepass 选项,用户将被提示输入口令。

-keypass[password] 指定用于保护密钥仓库项(由命令行中指定的别名标出)的私钥的口令。使用 jarsigner 为 JAR 文件签名时需要该口令。如果命令行中没有提供口令,且所需的口令与密钥仓库的口令不同,则将提示用户输入它。

-sigfile[file] 指定用于生成 .SF 和 .DSA 文件的基本文件名。

-signedjar[file] 指定用于已签名的 JAR 文件的名称。

-verify 如果它出现在命令行中,则指定的 JAR 文件将被校验,而不是签名。如果校验成功,将显示“jar verified”。如果试图校验未签名的 JAR 文件,或校验被不支持的算法(例如未安装 RSA 提供者时使用的 RSA)签名的 JAR 文件,则将有如下显示: "jar is unsigned. (signatures missing or not parsable)" 。

-certs 如果它与 -verify 和 -verbose 选项一起出现在命令行中,则输出将包括 JAR 文件的每个签名人的证书信息。

-verbose 如果它出现在命令行中,则代表“verbose”模式,它使 jarsigner 在 JAR 签名或校验过程中输出额外信息。

-internalsf 过去,JAR 文件被签名时产生的 .DSA(签名块)文件包含一个同时产生的 .SF 文件(签名文件)的完整编码副本。这种做法已被更改。为了减小输出 JAR 文件的整个大小,缺省情况下 .DSA 文件不再包含 .SF 文件的副本。但是如果 -internalsf 出现在命令行中,将采用旧的做法。该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。

-sectionsonly 如果它出现在命令行中,则 JAR 文件被签名时生成的 .SF 文件(签名文件)将不包括含有整个清单文件的散列的头。它仅包含 与 JAR 中每个单独的源文件相关的信息和散列。该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。

-J[javaoption] 将指定的 javaoption 串直接传递到 Java 解释器。((jarsigner 实际上是解释器的一个 “wrapper”)。

Java数据证书的管理工具keytool 密钥库 存储库 的区别?

密钥库 指密钥别名的密钥库

存储库 指keyStore

存储库包含密钥库

急!如何修改keystore密码(在线等)(JAVA的)

Keytool 是安全钥匙与证书的管理工具.它管理一个存储了私有钥匙和验证相应公共钥匙的与它们相关联的X.509 证书链的keystore(相当一个数据库).

Keytool 是一个有效的安全钥匙和证书的管理工具. 它能够使用户使用数字签名来管理他们自己的私有/公共钥匙对,管理用来作自我鉴定的相关的证书,管理数据完整性和鉴定服务.它还能使用户在通信时缓存它们的公共钥匙.

一个证书是某一实体(个人,公司等)的数字签名,指出其他实体的公共钥匙(或其他信息)的详细的值.当数据被签名后,这个签名信息被用来检验数据的完整性和真实性.完整性指数据没有被修改和篡改,真实性指数据从任何产生和签名的一方真正的传输到达.

Keytool 把钥匙和证书储存到一个keystore.默任的实现keystore的是一个文件.它用一个密码保护钥匙.

而另外的一个工具jarsigner用keystore中的信息产生或检验Java aRchive(jar文件)中的数字签名.

Keystore有两个不同的入口:

1.钥匙入口:保存了非常敏感的加密的钥匙信息,并且是用一个保护的格式存储以防止未被授权的访问.以这种形式存储的钥匙是秘密钥匙,或是一个对应证书链中公有钥匙的私有钥匙.

2.信任证书入口:包含一个属于其他部分的单一公共钥匙证书.它之所以被称为"信任证书",是因为keystore信任的证书中的公共钥匙真正属于证书所有者的身份识别.

Keystore的别名:

所有的keystore入口(钥匙和信任证书入口)是通过唯一的别名访问.别名是 不区分大小写的.如别名Hugo和hugo指向同一个keystore入口.

可以在加一个入口到keystore的时候使用-genkey参数来产生一个钥匙对(公共钥匙和私有钥匙)时指定别名.也可以用-import参数加一个证书或证书链到信任证书.

如:

keytool -genkey -alias duke -keypass dukekeypasswd

其中duke为别名,dukekeypasswd为duke别名的密码.这行命令的作用是产生一个新的公共/私有钥匙对.

假如你想修改密码,可以用:

keytool -keypasswd -alias duke -keypass dukekeypasswd -new newpass

将旧密码dukekeypasswd改为newpass.

Keystore的产生:

1.当使用-genkey 或-import或-identitydb命令添加数据到一个keystore,而当这个keystore不存在时,产生一个keystore.默认名是.keystore,存放到user-home目录.

2.当用-keystore指定时,将产生指定的keystore.

Keystore的实现:

Keytool 类位于java.security包下,提供一个非常好的接口去取得和修改一个keystore中的信息. 目前有两个命令行:keytool和jarsinger,一个GUI工具Policy 可以实现keystore.由于keystore是公开的,用户可以用它写一些额外的安全应用程序.

Keystore还有一个sun公司提供的内在实现.它把keystore作为一个文件来实现.利用了一个keystore类型(格式)"JKS".它用单独的密码保护每一个私有钥匙.也用可能不同的密码保护整个keystore的完整性.

支持的算法和钥匙大小:

keytool允许用户指定钥匙对和注册密码服务供应者所提供的签名算法.缺省的钥匙对产生算法是"DSA".假如私有钥匙是"DSA"类型,缺省签名算法是"SHA1withDSA",假如私有钥匙是"RSA"类型,缺省算法是"MD5withRSA".

当产生一个DSA钥匙对,钥匙必须在512-1024位之间.对任何算法的缺省钥匙大小是1024位.

证书:

一个证书是一个实体的数字签名,指出其他实体的公共钥匙有明确的值.

1.公共钥匙 :是同一个详细的实体的数字关联,并有意让所有想同这个实体发生信任关系的其他实体知道.公共钥匙用来检验签名;

2.数字签名:假如数据已被签名,并用身份存储在一个实体中,一个签名能够证明这个实体知道这个数据.这个数据用实体私有钥匙签名并递交;

3.身份:知道实体的方法.在一些系统中身份是公共钥匙,其他系统中可以是从一个X.509名字的邮件地址的Unix UID来的任何东西;

4.签名:一个签名用用实体私有钥匙来计算某些加密数据;

5.私有钥匙:是一些数字,每一个私有钥匙只能被特定的拥有该私有钥匙的实体知道.私有和公共钥匙存在所有用公共钥匙加密的系统的钥匙对中.一个公共钥匙加密(如DSA),一个私有钥匙与一个正确的公共钥匙通信.私有钥匙用来计算签名.

6.实体:一个实体可以是一个人,一个组织,一个程序,一台计算机,一个商业,一个银行,或其他你想信任的东西.

Keytool应用实例:

1.产生一个keystore:

keytool -genkey -alias User(keystore的别名) -keyalg RSA -validity 7 -keystore keystore(指定keystore).

运行这个命令,系统提示:

Enter keystore password:yourpassword(输入密码)

What is your first and last name?

[Unknown]: your name(输入你的名字)

What is the name of your organizational unit?

[Unknown]:your organizational(输入你所在组织单位的名字)

What is the name of your organization?

[Unknown]:your organization name (输入你所在组织的名字)

What is the name of your City or Locality?

[Unknown]:your city name(输入所在城市的名字)

What is the name of your State or Province?

[Unknown]:your provice name(输入所在省份名字)

What is the two-letter country code for this unit?

[Unknown]:cn(输入国家名字)

Is CN=your name, OU=your organizaion, O="your organization name",

L=your city name, ST=your province name, C=cn correct?

[no]: yes

2.检查一个keystore:

keytool -list -v -keystore keystore

Enter keystore password:your password(输入密码)

将显示keystore内容如:

Keystore type: jks

Keystore provider: SUN

Your keystore contains 1 entry

Alias name: yourname

Creation date: Dec 20, 2001

Entry type: keyEntry

Certificate chain length: 1

Certificate[1]:

Owner: CN=yourname, OU=your organization, O="your organization name",

L=your city name, ST=your province name, C=CN

Issuer: CN=Duke, OU=Java Software, O="Sun Microsystems, Inc.", L=Palo Alto, ST=CA, C=US

Serial number: 3c22adc1

Valid from: Thu Dec 20 19:34:25 PST 2001 until: Thu Dec 27 19:34:25 PST 2001

Certificate fingerprints:

MD5: F1:5B:9B:A1:F7:16:CF:25:CF:F4:FF:35:3F:4C:9C:F0

SHA1: B2:00:50:DD:B6:CC:35:66:21:45:0F:96:AA:AF:6A:3D:E4:03:7C:74

3.输出keystore到一个文件:testkey:

keytool -export -alias duke -keystore keystore -rfc -file testkey

系统输出:

Enter keystore password:your password(输入密码)

Certificate stored in file

4.输入证书到一个新的truststore:

keytool -import -alias dukecert -file testkey -keystore truststore

Enter keystore password:your new password.(输入truststore新密码)

5.检查truststore:

keytool -list -v -keystore truststore

系统将显示truststore的信息.

现在可以用适当的keystore运行你的应用程序.如:

java -Djavax.net.ssl.keyStore=keystore -Djavax.net.ssl.keyStorePassword=password Server

和: java -Djavax.net.ssl.trustStore=truststore

-Djavax.net.ssl.trustStorePassword=trustword Client

如何把安全证书导入到java中的cacerts证书库

每一步:进入某个开头的网站,把要导入的证书下载过来,

在该网页上右键 属性 点击"证书"

再点击上面的"详细信息"切换栏

再点击右下角那个"复制到文件"的按钮

就会弹出一个证书导出的向导对话框,按提示一步一步完成就行了。

例如:保存为abc.cer,放在C盘下

第二步:如何把上面那步的(abc.cer)这个证书导入java中的cacerts证书库里?

方法如下

假设你的jdk安装在C:\jdk1.5这个目录,

开始 运行 输入cmd 进入dos命令行

再用cd进入到C:\jdk1.5\jre\lib\security这个目录下

敲入如下命令回车执行

keytool -import -alias cacerts -keystore cacerts -file d:\software\AKAZAM-Mail.cer -trustcacerts

此时命令行会提示你输入cacerts证书库的密码,

你敲入changeit就行了,这是java中cacerts证书库的默认密码,

你自已也可以修改的。

ok,大功告成!

以后更新时,先删除原来的证书,然后导入新的证书

keytool -list -keystore cacerts

keytool -delete -alias akazam_email -keystore cacerts

keytool -import -alias akazam_email -file akazam_email.cer -keystore cacerts -trustcacerts

关于javakeypass和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-10,除非注明,否则均为首码项目网原创文章,转载请注明出处。