如何应用JDK中的keytool.exe命令工具创建数字证书
- 格式:ppt
- 大小:445.50 KB
- 文档页数:10
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 自带工具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 中。
先保证计算机的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命令使⽤说明这个命令⼀般在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中,你可以使用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生成证书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证书前言:因为公司项目客户要求使用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的文件。
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证书提供。
配置Tomcat使用https协议一. 创建tomcat证书这里使用JDK自带的keytool工具来生成证书1. 在jdk的安装目录\bin\keytool.exe下打开keytool.exe2. 在命令行中输入以下命令:keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "f:\tomcat.keystore"二. 配置tomcat服务器定位到tomcat服务器的安装目录, 找到conf下的server.xml文件找到如下已经被注释的代码:去掉注释,修改为:<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"keystoreFile="F:\Keystore\tomcat.keystore"keystorePass="123456"/>访问支持ssl的web站点:启动本场tomcat,在浏览器中输入:https://localhost:8443/注:访问支持ssl的web站点:发现ssl不工作,出现如下信息:ERR_SSL_VERSION_OR_CIPHER_MISMATCH解决方案是修改servlet.xml的文件:<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true"clientAuth="false" sslProtocol="TLS"keystoreFile="D:\Tools\Web\ssl\tomcat.keystore"keystorePass="tomcat"ciphers="TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_RC4_128_SHA"/>或者不要使用ciphers该节点属性。
使⽤JDK⾃带的keytool⼯具⽣成证书⼀、keytool 简介 keytool 是java⽤于管理密钥和证书的⼯具,它使⽤户能够管理⾃⼰的公钥/私钥对及相关证书,⽤于(通过数字签名)⾃我认证(⽤户向别的⽤户/服务认证⾃⼰)或数据完整性以及认证服务。
在JDK 1.4以后的版本中都包含了这⼀⼯具,它的位置为%JAVA_HOME%\bin\keytool.exe,如下图所⽰:其功能包括:创建并管理密钥创建并管理证书作为CA 为证书授权导⼊导出证书⼆、keytool的⽤法三、⽣成证书⽣成证书主要是使⽤" -genkey",该命令的可⽤参数如下:⽰例:⽣成⼀个名称为tomcat的证书(cas服务https环境证书⽣成⽰例)keytool -genkey -alias tomcat -keyalg RSA -keystore D:/cas.keystore功能说明:⽣成⼀个别名为tomcat的证书,该证书存放在名为cas.keystore的密钥库中,若cas.keystore密钥库不存在则创建。
参数说明:-genkey:⽣成⼀对⾮对称密钥;-alias:指定密钥对的别名,该别名是公开的;-keyalg:指定加密算法,本例中的采⽤通⽤的RAS加密算法;-keystore:密钥库的路径及名称,不指定的话,默认在操作系统的⽤户⽬录下⽣成⼀个".keystore"的⽂件。
注意: 1.密钥库的密码⾄少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等 2."名字与姓⽒"应该是输⼊域名,⽽不是我们的个⼈姓名,其他的可以不填执⾏完上述命令后,在D盘下⽣成了⼀个"cas.keystore"的⽂件,如下图所⽰:四、导出证书导出证书主要是使⽤" -export",该命令的可⽤参数如下:⽰例:将名为cas.keystore的证书库中别名为tomcat的证书条⽬导出到证书⽂件cas.crt中keytool -export -trustcacerts -alias tomcat -file D:/cas.crt -keystore D:/cas.keystore执⾏完上述命令后,在D盘下⽣成了⼀个"cas.crt"的⽂件,如下图所⽰:五、导⼊证书导⼊证书主要是使⽤" -import",该命令的可⽤参数如下:⽰例1:将证书⽂件cas.crt导⼊到名为test_cacerts的证书库中keytool -import -file D:/cas.crt -keystore D:/test_cacerts⽰例2:将证书⽂件test.crt导⼊到名为cacerts的证书库中(这⾥将会演⽰将证书导⼊到jdk的证书库中)keytool -import -trustcacerts -alias tomcat -file D:/cas.crt -keystore %JAVA_HOME%/jre/lib/security/cacerts注:次例中jdk证书库的默认密码为:changeit六、查看密钥库⾥⾯的证书keytool -list -keystore D:/cas.keystore七、查看证书信息keytool -printcert -file D:/cas.crt⼋、删除密钥库中的条⽬⽰例:删除密钥库cas.keystore中别名为tomcat的证书条⽬keytool -delete -keystore D:/cas.keystore -alias tomcat九、修改证书条⽬的⼝令⽰例:将密钥库cas.keystore中别名为test的证书条⽬的密码修改为666666(别名为test的证书条⽬必须存在)keytool -keypasswd -alias test -keystore D:/cas.keystore。