3步注册成为你的数字证书 确保你机器上安装了jdk
首先进入一个新建立空文件夹,把需要注册的打成jar的jar包放入这个文件夹,然后cmd键入该文件夹,然后输入下面的命令
1. 生成一个注册文件
keytool -genkey -alias lams -keypass 123456 -storepass 123456 -validity 1277 -keystore .\lams
这时候会提示让你输入一些信息,国家公司之类的信息. 1277是天数
2验证
keytool -list -keystore .\lams -storepass LAMS@)!!
3 注册jar
jarsigner -verbose -keystore .\lams uupload.jar lams
会让你输入上面的密码123456
这是发现你的jar文件里面的里面 META-INF文件夹下面多了几个文件.然后MAINIFEST.MF也改变了.这时候说明注册完成了.
下面是 keytool 和 jarsigner 命令说明: 都是在网上找的,如果是简单的applet上面的足够了
keytool :
-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias 产生别名
-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg 指定密钥的算法
-validity 指定创建的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的密码
-keypass 指定别名条目的密码
-dname 指定证书拥有者信息 例如: "CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn"
-list 显示密钥库中的证书信息 keytool -list -v -keystore sage -storepass ....
-v 显示密钥库中的证书详细信息
-export 将别名指定的证书导出到文件 keytool -export -alias caroot -file caroot.crt
-file 参数指定导出到文件的文件名
-delete 删除密钥库中某条目 keytool -delete -alias sage -keystore sage
-keypasswd 修改密钥库中指定条目口令 keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
-import 将已签名数字证书导入密钥库 keytool -import -alias sage -keystore sagely -file
导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。
jarsigner :
下面列出并说明了各种 jarsigner 选项。注意:
-keystore
、-storepass
、-keypass
、-sigfile
和 -signedjar
选项仅在为 JAR 文件签名时相关,而不是在校验已签名的 JAR 文件时。同样,别名仅在为 JAR 文件签名时在命令行中指定。 -keystore
url
签名时需要密钥仓库,因此如果没有缺省的(或要使用非缺省的)密钥仓库,就必须明确指定一个。
校验时不需要密钥仓库,但如果指定了一个,或存在缺省的,且 -verbose
选项也被指定了,则将输出该密钥仓库中是否包含了用于校验 JAR 文件的证书的附加信息。
注意: -keystore
参数实际上可以是指定的文件名(及路径)而不是 URL,这种情况下它将当作“file:” URL. 也就是说,
-keystore filePathAndName
被当作等价于
-keystore file:filePathAndName
-storetype
storetype
java.security.KeyStore
中的静态方法 getDefaultType
返回。
-storepass
password
-storepass
选项,用户将被提示输入口令。
注意: 口令不应在命令行或脚本中指定,除非是为了测试,或在安全系统中。并且,在口令提示下键入口令时将显示出键入的字符,因此不要在其它人面前键入。
-keypass
password
注意: 口令不应在命令行或脚本中指定,除非是为了测试,或在安全系统中。并且,在口令提示下键入口令时将显示出键入的字符,因此不要在其它人面前键入。
-sigfile
file
file 中的字符应来自“a-zA-Z0-9_-”。也就是说,只允许字母、数字、下划线和连字符。注意: .SF 和 .DSA 文件名中小写字母将被转换为大写字母。
如果命令行中没有 -sigfile
选项,则 .SF 和 .DSA 文件的基本文件名将是命令行中指定的别名的前 8 个字符,并全部被转换为大写。如果别名少于 8 个字符,将使用整个别名。如果别名中包含签名文件名所不允许的字符,则形成文件名时这样的字符将被转换为下划线 ("_")。
-signedjar
file
如果命令行中没有指定名称,将使用输入的 JAR 文件名(要签名的 JAR 文件名);换句话说,该文件将被签名 JAR 文件覆盖。
-verify
可以校验使用 jarsigner 或 JDK 1.1 javakey 工具或共用二者签名的 JAR 文件。
有关校验的详细信息,参见 JAR 文件校验。
-certs
-verify
和 -verbose
选项一起出现在命令行中,则输出将包括 JAR 文件的每个签名人的证书信息。该信息包括
java.security.cert.X509Certificate
的实例): 签名人的特征名密钥仓库也被检查。如果命令行中没有指定密钥仓库值,缺省密钥仓库文件(如果有)将被检查。如果签名人的公钥证书与密钥仓库中的项匹配,则还将显示下列信息:
-verbose
-internalsf
-internalsf
出现在命令行中,将采用旧的做法。该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。
-sectionsonly
缺省情况下,该头将作为一种优化手段添加。只要该头存在,则无论何时 JAR 被校验,都将首先检查该头中的散列是否真正与整个清单文件的散列匹配。如果匹配,校验将进行下一步。如果不匹配,则有必要执行一个次优的校验,检查 .SF 文件中每个源文件信息部分中的散列是否等于清单文件中相应部分的散列。
有关的详细信息,参见 JAR 文件校验。
该选项主要在测试时有用;实际上不应使用它,因为这样将消除有用的优化。
-J
javaoption
java -h
或 java -X
。