如何应用JDK中的keytool.exe命令工具创建数字证书
java-keytool生成数字证书

Keytool是一个Java数据证书的管理工具,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)可信任的证书实体(trusted certificate entries)——只包含公钥ailas(别名)每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写JDK中keytool常用命令:-genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书(在没有指定生成位置的情况下,keystore会存在用户系统默认目录,如:对于window xp系统,会生成在系统的C:\Documents and Settings\UserName\文件名为“.keystore”)-alias 产生别名-keystore 指定密钥库的名称(产生的各类信息将不在.keystore文件中)-keyalg 指定密钥的算法(如RSA DSA(如果不指定默认采用DSA))-validity 指定创建的证书有效期多少天-keysize 指定密钥长度-storepass 指定密钥库的密码(获取keystore信息所需的密码)-keypass 指定别名条目的密码(私钥的密码)-dname 指定证书拥有者信息例如:"CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"-list 显示密钥库中的证书信息keytool -list -v -keystore 指定keystore-storepass 密码-v 显示密钥库中的证书详细信息-export 将别名指定的证书导出到文件keytool -export -alias 需要导出的别名-keystore 指定keystore -file 指定导出的证书位置及证书名称-storepass 密码-file 参数指定导出到文件的文件名-delete 删除密钥库中某条目keytool -delete -alias 指定需删除的别-keystore 指定keystore -storepass 密码-printcert 查看导出的证书信息keytool -printcert -file yushan.crt-keypasswd 修改密钥库中指定条目口令keytool -keypasswd -alias 需修改的别名-keypass 旧密码-new 新密码-storepass keystore密码-keystore sage-storepasswd 修改keystore口令keytool -storepasswd -keystoree:\yushan.keystore(需修改口令的keystore) -storepass 123456(原始密码) -new yushan(新密码)-import 将已签名数字证书导入密钥库keytool -import -alias 指定导入条目的别名-keystore 指定keystore -file 需导入的证书下面是各选项的缺省值。
jdk linux 生成crt证书

jdk linux 生成crt证书摘要:一、JDK 自带工具keytool 简介二、生成SSL 证书的步骤1.创建KeyStore2.创建证书请求3.创建自签名证书4.将证书安装到KeyStore5.导出证书三、注意事项正文:一、JDK 自带工具keytool 简介在Java 开发中,为了保证数据的安全传输,我们常常需要使用SSL 证书来实现HTTPS。
而JDK 自带的工具keytool 可以帮助我们生成所需的SSL 证书。
二、生成SSL 证书的步骤1.创建KeyStore首先,我们需要创建一个KeyStore 对象,用于存储生成的SSL 证书。
在Linux 环境下,我们可以使用keytool 命令来创建一个KeyStore 文件:```keytool -keystore myKeyStore.jks -storepass changeit -keyalg RSA -keysize 2048 -validity 365 -exportcert -alias myCert```其中,`myKeyStore.jks`是KeyStore 文件的名称,`changeit`是KeyStore 的密码,`RSA`是密钥算法,`2048`是密钥长度,`365`是证书的有效期,`myCert`是证书的别名。
2.创建证书请求接下来,我们需要创建一个证书请求,以便于生成自签名证书。
可以使用以下命令来创建证书请求:```keytool -req -new -keyalg RSA -keysize 2048 -validity 365 -exportcert -alias myCert```3.创建自签名证书利用证书请求,我们可以生成一个自签名证书。
使用以下命令来创建自签名证书:```keytool -selfsign -certreqs -alias myCert -keyalg RSA -keysize 2048 -validity 365 -exportcert -out myCert.crt```4.将证书安装到KeyStore生成自签名证书后,我们需要将其安装到KeyStore 中。
在本机上生成SSL数字证书

先保证计算机的JDK安装及环境变量配置正确:cmd转到JDK安装目录下<JAVA_HOME>\bin\keytool -genkeypair -alias "tomcat" -keyalg "RSA"以上命令将生产一对非对称密钥和自我签名的证书,这个命令中几个参数的意思如下:-genkeypair:生成一对非对称密钥。
-alias:指定密钥对的别名,该别名是公开的。
-keyalg:指定加密算法,本例中的采用通用的RAS加密算法首先会提示输入keystore的密码,这里我输入的密码是sunchis。
然后提示输入个人信息,如姓名、组织单位和所在城市等,只要输入真实信息即可。
接着会提示输入信息是否正确,输入“y”表示信息正确。
最后要求输入<Tomcat>的主密码,这里设置与keystore相同的密码,因此只需根据提示按回车键即可。
以上命令将在操作系统的用户目录下生成名为“.keystore”的文件。
我当前登录到操作系统的用户名是Administrator,那么在Wnidows下,文件的位置为:C:\Documents and Settings\Administrator\.keystore查看已生成的证书的命令为:keytool -list -keystore "C:\Documents and Settings\Administrator\.keystore"在Tomcat的server.xml文件中,已经提供了现成的配置SSL连接器的代码,只要把<Connector>元素的注释去掉即可:<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"maxThreads="150" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="C:\Documents and Settings\ Administrator \.keystore"keystorePass="SUNCHIS"ciphers="sunchis"/>web.xml中可加入(可选)<security-constraint><web-resource-collection><web-resource-name>SSL</web-resource-name><url-pattern>/*</url-pattern></web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint></security-constraint>。
数字证书中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中,你可以使用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)获取证书。
keytool生成证书

keytool生成证书1.创建一个证书C:\jdk1.5.0_04\bin>keytool -genkey -alias xahCA -keyalg RSA -keystore dyfCALib 输入keystore密码:admindyf您的名字与姓氏是什么?[Unknown]:徐吖禾您的组织单位名称是什么?[Unknown]:天河您的组织名称是什么?[Unknown]:天河有限公司您所在的城市或区域名称是什么?[Unknown]:南京您所在的州或省份名称是什么?[Unknown]:江苏该单位的两字母国家代码是什么[Unknown]:CNCN=徐吖禾, OU=天河, O=天河有限公司, L=南京, ST=江苏, C=CN 正确吗?[否]:y输入的主密码(如果和keystore 密码相同,按回车):xahadmin2.列出证书库中所有的证书(一共有两个:xahca和dyfca)C:\jdk1.5.0_04\bin>keytool -list -keystore dyfCALib输入keystore密码:admindyfKeystore 类型:jksKeystore 提供者:SUN您的keystore 包含 2 输入xahca, 2006-12-16, keyEntry,认证指纹(MD5):2C:36:A5:52:D0:4A:BA:72:60:19:2F:32:80:02:A9:C5dyfca, 2006-12-16, keyEntry,认证指纹(MD5):E7:8B:D8:93:1A:06:B1:B8:51:3D:13:CF:46:38:AC:773.列出证书库中别名为xahCA的证书C:\jdk1.5.0_04\bin>keytool -list -v -alias xahCA -keystore dyfCALib输入keystore密码:admindyf别名名称:xahCA创建日期:2006-12-16输入类型:KeyEntry认证链长度: 1认证[1]:Owner: CN=徐吖禾, OU=天河, O=天河有限公司, L=南京, ST=江苏, C=CN发照者:CN=徐吖禾, OU=天河, O=天河有限公司, L=南京, ST=江苏, C=CN序号:458400d7有效期间:Sat Dec 16 22:21:11 CST 2006 至:Fri Mar 16 22:21:11 CST 2007认证指纹:MD5:2C:36:A5:52:D0:4A:BA:72:60:19:2F:32:80:02:A9:C5SHA1:E6:A2:DD:EE:D2:8F:FB:D4:85:CE:46:4F:7E:25:7F:C4:C2:69:68:DF4.删除证书库中证书别名为xahCA的证书C:\jdk1.5.0_04\bin>keytool -delete -alias xahCA -keystore dyfCALib输入keystore密码:admindyf删除后里面再列出证书库中的证书只剩一个C:\jdk1.5.0_04\bin>keytool -list -keystore dyfCALib输入keystore密码:admindyfKeystore 类型:jksKeystore 提供者:SUN您的keystore 包含 1 输入dyfca, 2006-12-16, keyEntry,认证指纹(MD5):E7:8B:D8:93:1A:06:B1:B8:51:3D:13:CF:46:38:AC:775.修改证书密码C:\jdk1.5.0_04\bin>keytool -keypasswd -alias dyfCA -keystore dyfCALib输入keystore密码:admindyf输入的主密码dyfadmin新的主密码:dyfadmin必须是不同的密码新的主密码:dyf密码太短-至少必须为6个字符新的主密码:dyfpws重新输入新的主密码:dyfpws6.非交互式修改密码C:\jdk1.5.0_04\bin>keytool -keypasswd -alias dyfCA -keypass dyfpws -new dyfadmin -storepass admindyf -keystore dyfCALib7.列出证书的详细信息C:\jdk1.5.0_04\bin>keytool -list -v -alias dyfCA -keystore dyfCALib输入keystore密码:admindyf别名名称:dyfCA创建日期:2006-12-16输入类型:KeyEntry认证链长度: 1认证[1]:Owner: CN=董云飞, OU=天运, O=天运, L=南京, ST=江苏, C=CN发照者:CN=董云飞, OU=天运, O=天运, L=南京, ST=江苏, C=CN序号:4583fd13有效期间:Sat Dec 16 22:05:07 CST 2006 至:Tue Dec 13 22:05:07 CST 2016认证指纹:MD5:E7:8B:D8:93:1A:06:B1:B8:51:3D:13:CF:46:38:AC:77SHA1:8C:CB:76:50:DB:34:35:C5:95:49:DA:9E:18:22:B0:F9:AF:73:C8:F58.将证书导出到证书文件中(该证书文件以二进制编码,无法用文本编辑器查看,不利用公布证书)C:\jdk1.5.0_04\bin>keytool -export -alias xahCA -file dyfCA.cer -keystore dyfCALibkeytool -genkey -alias xahCA -keyalg RSA -keystore dyfCALibib输入keystore密码:admindyf保存在文件中的认证9.将证书导出到证书文件中(以一种可打印的编码输出)C:\jdk1.5.0_04\bin>keytool -export -alias dyfCA -file dyfCA.cer -keystore dyfCALib -rfc输入keystore密码:admindyf保存在文件中的认证10.查看证书文件C:\jdk1.5.0_04\bin>keytool -printcert -file dyfCA.cerOwner: CN=董云飞, OU=天运, O=天运, L=南京, ST=江苏, C=CN发照者:CN=董云飞, OU=天运, O=天运, L=南京, ST=江苏, C=CN序号:4583fd13有效期间:Sat Dec 16 22:05:07 CST 2006 至:Tue Dec 13 22:05:07 CST 2016认证指纹:MD5:E7:8B:D8:93:1A:06:B1:B8:51:3D:13:CF:46:38:AC:77SHA1:8C:CB:76:50:DB:34:35:C5:95:49:DA:9E:18:22:B0:F9:AF:73:C8:F511.自己签署证书C:\jdk1.5.0_04\bin>keytool -selfcert -alias dyfCA -keystore dyfCALib输入keystore密码:admindyf输入的主密码dyfadmin22222222222222222222222222222222详细请见:Tomcat的帮助文档,:https://localhost:8080/tomcat-docs/ssl-howto.html 。
JDK自带工具keytool生成ssl证书

JDK自带工具keytool生成ssl证书前言:因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全。
百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具:keytool,外加看了同事的心得体会,自己总结了一下具体的使用方法和使用过程中发现的问题及解决办法。
1:什么是HTTPS?HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块,并且会进行身份的验证。
问题:Firebug和postman之类的浏览器调试工具,为什么获取到的是明文?解答:SSL是对传输的数据进行加密,针对的是传输过程的安全。
firebug之类的浏览器调试工具,因为他们得到的是客户端加密之前/解密之后的数据,因此是明文的。
2:什么是自签名证书?就是自己生成的证书,并不是官方生成的证书。
除非是很正式的项目,否则使用自己签发的证书即可,因为官方生成证书是要花钱滴。
3:进入正题,使用JDK自带工具KeyTool 生成自签发证书!第一步:为服务器生成证书打开CMD命令行工具,cd到C盘根目录或者是jdk的bin目录下,如下图所示:附录1:常用keytool命令使用keytool命令生成证书:keytool-genkey-alias tomcat(别名)-keypass 123456(别名密码)-keyalg RSA(算法)-keysize 1024(密钥长度)-validity 365(有效期,天单位)-keystore D:/keys/tomcat.keystore(指定生成证书的位置和证书名称)-storepass 123456(获取keystore信息的密码)方便复制版:keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365-keystore D:/keys/tomcat.keystore -storepass 123456图例:回车执行后如下图:点击回车即可在D:/keys/文件夹内生成名为:tomcat.keystore的文件。
java tomcat http升级https

Tomcat配置https及访问http自动跳转至https一、创建tomcat证书这里使用JDK自带的keytool工具来生成证书:1.在jdk的安装目录\bin\keytool.exe下打开keytool.exe2. 在命令行中输入以下命令:keytool -genkeypair -alias "tomcat" -keyalg"RSA"-keystore"D:\tomcat.keystore"以上命令将生产一对非对称密钥和自我签名的证书D:\tomcat.keystore注意:“名字与姓氏”应该是域名,输成了姓名,和真正运行的时候域名不符,会出问题这里的域名是以localhost为例二. 配置tomcat服务器定位到tomcat服务器的安装目录, 找到conf下的server.xml文件找到如下已经被注释的代码:去掉注释,修改为:在互联网上, http协议的默认端口是80, https的默认端口是443, 这里将端口改为了443三. 启动tomcat服务器在IE浏览器中输入: https://localhost/点击“高级”-“添加例外”证书过期日期为某日。
而当前日期为某日。
错误代码:SEC_ERROR_EXPIRED_CERTIFICATE这个错误发生在网站的证书已经过期的情况下。
这个错误信息会显示您的系统上的当前日期和证书生效日期。
如果您认为系统上的当前日期有误,您可以手动更正(双击任务栏上的时间图标)来修复这个问题。
该证书因为其颁发者证书未知而不被信任。
该服务器可能未发送相应的中间证书。
可能需要导入一个额外的根证书。
错误代码:SEC_ERROR_UNKNOWN_ISSUER该证书因为其自签名而不被信任。
错误代码:SEC_ERROR_UNKNOWN_ISSUER 使用了无效的安全证书。
该证书仅对下列域名有效:, * 错误代码:SSL_ERROR_BAD_CERT_DOMAIN选择继续浏览此网站搞定了!!!!443端口被占用遇到的问题:我在配置的过程中问题,当我修改了server.xml的配置后,启动tomcat报错org.apache.catalina.core.StandardService initInternal严重: Failed to initialize connector [Connector[HTTP/1.1-443]]org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-443]]网上找了下,可以将protocol="HTTP/1.1"替换为protocol="org.apache.coyote.http11.Http11Protocol",问题可以得以解决四. 安装tomcat的证书在浏览器中这里浏览器显示证书错误, 有红色警告在浏览器中右击选择属性, 查看不到证书在这里我为了能导出证书, 在tomcat的根目录下新建了一个hello.html的页面下面可以访问到将证书导出来注意:这个地方有部分电脑的"复制文件"的按钮是不能点的, 导不出来可以尝试装个虚拟机试一下下面就下一步就行我将证书导出到了桌面上,得到了一个cer的证书文件下面打开浏览器的Internet选项----> 内容----> 证书选择"受信任的根证书颁发机构" ----> 导入证书将生成的证书导入进来其余的步骤直接下一步即可重启浏览器,发现------没有红色警告了!!! 搞定!!!附:阿里云有免费的DV证书提供。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6、导出生成安全证书文件的命令和创建过程
(1)在操作系统的命令行窗口中输入如下的命令 keytool -export -alias yangSB -file F:/server.cer -keystore f:/server.keystore -validity 365
上面的命令的主要功能将实现把位于目录文件中的数字证 书库f:/server.keystore中的别名为“yangSB”的证书导出到 F:/server.cer的数字证书文件中。在F:/server.cer的数字证 书文件中将包含有证书主体的信息及证书的公钥等方面的信息, 但不包括私钥信息。因此,该server.cer数字证书文件可以公 开。 (2)输入密码 然后再输入前面的f:/server.keystore数字证书库文件中 存储的keystore密码(本示例为123456),系统将会在F盘的 根目录中创建出一个文件名称为server.cer的数字证书文件。 其中的“-file F:/server.cer”命令参数即为要求生成.cer 格式文件,如下示图所示:
(3)双击所创建的server.cer的数字证书文件,将能够正常地 看到数字证书中相关的信息。
3、熟悉和了解数字证书文件
(1)数字证书库中的一条证书可以导出为数字证书文件,而数字 证书文件只包括主体信息和对应的公钥——公共密钥用于加密 信息,私用密钥用于解译加密的信息。 (2)每一个数字证书 库是由一个文件所组 成,并保存有访问的 密码。在首次创建时, 它会自动生成数字证 书库,并要求指定访 问该数字证书库的密 码。
2、数字证书的主要用途
(1)发送安全电子邮件、访问安全站点、网上证券交易、网上招 标采购、网上办公、网上保险、网上税务、网上签约和网上银 行等安全电子事务处理和安全电子交易等活动中。 (2)比如,将服务器端的SSL证书安装于服务器设备上,可以用 来证明服务器的身份和进行通信加密。 因为,应用服务器端的数字证书可以有效地防止欺诈的“钓 鱼”站点。
(5)ST(State州或省份名称) (6)C(Country国家名称) 上面的各个信息,可以采用交互式的工具在提示过程中,输 入以上的相关信息。当然,也可以采用如下的命令参数的方式预 先给定:-dname "CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx"。 如下为设置过 程中的示例图:
5、J2SDK中的keytool.exe命令工具及主要的功能
因为SSL 使用数字证书进行身份合法性的验证,并且JSSE 使用的证书要用Java系统中的keytool命令程序创建。 (1)JDK中的keytool.exe命令工具 在JDK1.4及以上版C:\j2sdk1.4.2_01\bin目录中有一个 keytool.exe命令工具,如下为JDK1.7版本中的keytool.exe命 令工具所在的目录示图。
(2)keytool.exe命令工具的主要功能 1)keytool 是个密钥和证书管理工具; 2) 它使用户能够管理自己的公钥/私钥对及相关证书,用于 (通过数字签名)自我认证(用户向别的用户/服务认证自己) 或数据完整性以及认证服务; 3) 它还允许用户储存他们的通信对等者的公钥(以证书形 式)。
4、在创建数字证书时,需要填写相关的信息
需要填写证书的一些信息和证书对应的私钥密码,这些信息 主要包括 CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=xx。它们 的含义如下所示: (1)CN(Common Name名字与姓氏) 对于个人可以填写自己的真实姓名,而对于企业,则可以填 写企业的名称或者更准确的应该是企业的域名。 因为,对于企业如果不填写为域名,用户在真正访问企业的 Web应用系统时,将可能会出现由于实际运行的域名和在数字证 书中通过“CN”项所记录的域名不相符。浏览器在这样的访问状 况下,将会弹出对话框并提示“安全证书上的名称无效,或者与 站点名称不匹配”。 (2)OU(Organization Unit组织单位名称) (3)O(Organization组织名称) (4)L(Locality城市或区域名称)
如何应用JDK中的keytool.exe命令工具 创建数字证书
1、什么是数字证书
(1)所有的数字证书都是以逐条信息的形式存入证书库中,每 条信息都采用“数字证书别名”加以区别; (2)证书库中的一条数字证书信息主要包含有该条数字证书的 私钥、公钥和对应的数字证书的相关内容信息——数字证书绑 定了公钥及其持有者的真实身份,它类似于现实生活中的居民 身份证。如下示图是一个数字证书内的信息的局部截图。