`
zzq19860626
  • 浏览: 261037 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
B20df9e2-fb3d-3644-9f72-c1619842f682
设计模式学习笔记
浏览量:177996
87eaf24f-812a-3463-8e65-e3197d2ad8c2
java虚拟机
浏览量:26194
社区版块
存档分类
最新评论

java ssl 证书和keystore生成

    博客分类:
  • java
阅读更多

1、cmd 进入命令行模式
2、建立服务端密钥库,并制作证书
   keytool.exe -genkeypair -v -alias sslsocket -keyalg RSA -keystore f:\project\sslsocket.keystore
执行命令后如下操作:口令为alaric ,
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  zhang
您的组织单位名称是什么?
  [Unknown]:  caituo
您的组织名称是什么?
  [Unknown]:  caituo
您所在的城市或区域名称是什么?
  [Unknown]:  hz
您所在的省/市/自治区名称是什么?
  [Unknown]:  zj
该单位的双字母国家/地区代码是什么?
  [Unknown]:  cn
CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=cn是否正确?
  [否]:  y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 90 天
):
         CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=cn
输入 <sslsocket> 的密钥口令
        (如果和密钥库口令相同, 按回车):
密钥口令太短 - 至少必须为 6 个字符
输入 <sslsocket> 的密钥口令
        (如果和密钥库口令相同, 按回车):
新证书 (自签名):
[
[
  Version: V3
  Subject: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=cn
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 303520715106134044774553832176678161976466110232782543068510607959727
99879298372836008080160885516252290208157123210298097709152968777556381288372542
87979685737351206639906550753178638852526567607189284937159166427830492947104763
36035038742281248315478521897752458095093015757688869858798283147927453489929549
01701270099027426242114483326948998856558222518435355034329674256781210677758092
29266049830491386408557436514678259266252826510002204133628130622320090765231478
52967428179793680484294163661111431892255009146586408340202652166621044899308970
27029941724718372009348653037920999813093737602161591646688690916999
  public exponent: 65537
  Validity: [From: Sat May 25 21:15:23 CST 2013,
               To: Fri Aug 23 21:15:23 CST 2013]
  Issuer: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=cn
  SerialNumber: [    297fbde0]

Certificate Extensions: 1
[1]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 70 83 45 C8 F7 C4 7A DE   75 8A 8B 17 3F BD 9F F8  p.E...z.u...?...
0010: 08 23 24 F8                                        .#$.
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: 95 7D 65 3F 13 62 7E CC   77 8E D4 DA 13 B5 AE E2  ..e?.b..w.......
0010: B7 EE 3B B5 06 34 D7 AF   9E 10 44 EE CB 8B 60 98  ..;..4....D...`.
0020: F0 E7 C2 AC 12 6A B0 C7   CB 2B 10 F6 F1 EB 22 51  .....j...+...."Q
0030: 73 AA 5E B1 E0 B7 10 9A   64 E4 06 51 2F A9 78 82  s.^.....d..Q/.x.
0040: 6C 07 CC 55 28 68 25 4F   6F AE 3C CF A0 BC C7 3B  l..U(h%Oo.<....;
0050: 5D 17 CD 86 9B 63 EC 42   58 55 37 37 57 6B D1 F8  ]....c.BXU77Wk..
0060: C0 3D E3 09 4D F3 F0 A1   1D 72 AA FD E4 72 D8 EA  .=..M....r...r..
0070: 82 C5 33 21 F2 77 24 A2   D5 76 4B 18 4E DF 20 44  ..3!.w$..vK.N. D
0080: CC DE 77 72 5B 41 EB 1D   7A 46 79 EE 01 69 B0 0B  ..wr[A..zFy..i..
0090: 64 9C 6B 47 E7 35 EF 62   F5 E9 75 1C A9 10 F1 E6  d.kG.5.b..u.....
00A0: 58 4E 8D 28 85 CC 6D 69   CE 7C A9 07 7A A5 83 E4  XN.(..mi....z...
00B0: 18 1B CA 35 81 13 42 6A   14 43 80 FA 00 15 B6 6C  ...5..Bj.C.....l
00C0: 68 F3 96 B0 36 01 47 C9   D0 8B 82 2C CC A6 F1 F5  h...6.G....,....
00D0: 04 99 2F B6 57 CC 7E 99   8C D2 1A DE EE BC 32 38  ../.W.........28
00E0: EB 3E 65 08 6E B0 43 89   08 26 0A 10 15 69 A8 7A  .>e.n.C..&...i.z
00F0: AD 50 0A 10 78 C3 36 5E   91 42 58 FF 87 F8 B0 67  .P..x.6^.BX....g

]
[正在存储f:\project\sslsocket.keystore]
3、制作证书:
执行命令:
keytool.exe -exportcert -v -alias sslsocket -file f:\proj
ect\sslsocket.cer -keystore f:\project\sslsocket.keystore
输入密钥库口令:
存储在文件 <f:\project\sslsocket.cer> 中的证书
这里的口令是上面的: alaric

4、 保存服务器端证书到客户端密钥库,以备客户接收到服务器端证书进行验证
执行命令:
1.keytool.exe -importcert -v -alias sslsocketcer -file f:\project\sslsocket.cer -keystore f:\project\sslclient.keystore 
执行命令后:
输入密钥库口令:
再次输入新口令:
所有者: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=cn
发布者: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=cn
序列号: 297fbde0
有效期开始日期: Sat May 25 21:15:23 CST 2013, 截止日期: Fri Aug 23 21:15:23 CST
2013
证书指纹:
         MD5: D8:01:80:F1:E1:EE:2B:00:9E:BE:95:FA:BA:A3:12:52
         SHA1: 76:43:50:BB:15:A0:F3:66:AA:46:EB:36:1B:2F:36:2A:B0:55:B1:C0
         SHA256: 38:0C:83:36:07:E1:7C:74:B5:1B:0F:A8:26:A6:D0:6F:57:67:2D:5C:5C:
B0:9D:D8:1D:05:1D:C9:D6:F0:07:8D
         签名算法名称: SHA256withRSA
         版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 70 83 45 C8 F7 C4 7A DE   75 8A 8B 17 3F BD 9F F8  p.E...z.u...?...
0010: 08 23 24 F8                                        .#$.
]
]

是否信任此证书? [否]:  y
证书已添加到密钥库中
[正在存储f:\project\sslclient.keystore]
这样就完成了服务端证书客户单验证的过程,这时候f:/project下面有就三个文件了
sslclient.keystore
sslsocket.cer
sslsocket.keystore

这个是一个过程,还有一个过程跟这个相反,就是客户端生成证书,服务端验证。

 

5、 生成客户端密钥库
命令:keytool.exe -genkeypair -v -alias sslsockettwo -keyalg RSA -keystore f:\project\sslclienttwo.keystore
结果:
您的名字与姓氏是什么?
  [zhang]:  zhang
您的组织单位名称是什么?
  [caituo]:  caituo
您的组织名称是什么?
  [caitou]:  caituo
您所在的城市或区域名称是什么?
  [Unknown]:  hz
您所在的省/市/自治区名称是什么?
  [Unknown]:  zj
该单位的双字母国家/地区代码是什么?
  [Unknown]:  zh
CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=zh是否正确?
  [否]:  y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 90 天
):
         CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=zh
输入 <sslsockettwo> 的密钥口令
        (如果和密钥库口令相同, 按回车):
新证书 (自签名):
[
[
  Version: V3
  Subject: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=zh
  Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

  Key:  Sun RSA public key, 2048 bits
  modulus: 246615209155440542928967004109483797069224610601131800176007759879125
67945361105654211958548021674568396031442747389170762209980024152574030514154328
32340428555847149292054793825986106460180280882140851132231280163147513435212200
76952454757730768170487748779720340255737493538009585313335885976427899534075014
82847166438474744919806247432278003930499082983291751324491299170276917368366263
65446028452747704661690571225537301574940895862917847646413481666409753244508412
43954093252713578576992345810820388271673780099942035074548747005288032030183903
77121310228193620818287289223575934598382253815598876962904828822851
  public exponent: 65537
  Validity: [From: Sat May 25 21:29:44 CST 2013,
               To: Fri Aug 23 21:29:44 CST 2013]
  Issuer: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=zh
  SerialNumber: [    5f7fe563]

Certificate Extensions: 1
[1]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 69 9B C2 D5 0F B1 EF 7D   14 B1 2C 7C A6 6E 83 80  i.........,..n..
0010: AF 98 63 20                                        ..c
]
]

]
  Algorithm: [SHA256withRSA]
  Signature:
0000: B8 AD 73 FE E7 50 AB 23   95 75 5E 44 B2 D2 1E 54  ..s..P.#.u^D...T
0010: 7E 3C 31 92 75 FB FA 36   78 2E 7C C1 ED 9E 2D 49  .<1.u..6x.....-I
0020: 34 2B 05 EE 59 18 CB 09   0F 82 2E 63 8C B5 4C 91  4+..Y......c..L.
0030: 69 3C EB AA 53 F7 9E 49   FA B7 47 96 9B 0A A2 49  i<..S..I..G....I
0040: 99 74 FE 26 39 38 D5 CC   A6 9F 96 67 C6 22 D1 B4  .t.&98.....g."..
0050: 2B BF FC C1 C4 55 91 D7   DA FA 29 A9 23 4E C0 72  +....U....).#N.r
0060: BA 0A D4 8B 75 C7 8F 21   9D 5E D9 63 59 60 59 13  ....u..!.^.cY`Y.
0070: 43 19 54 A6 DB B6 58 6D   86 C1 7B 9C 36 EC 71 A9  C.T...Xm....6.q.
0080: 4D 09 04 77 29 1A B2 8C   43 49 C0 E3 6F 97 8E 8D  M..w)...CI..o...
0090: 99 EC B1 DE 0B FA B6 38   B0 8A 4F 95 4F 66 34 C0  .......8..O.Of4.
00A0: 74 03 64 43 A2 94 0C E6   3B 33 5C B7 0A 36 30 1B  t.dC....;3\..60.
00B0: 18 59 CF D2 93 1E A8 8F   98 74 44 18 12 AE FC 1F  .Y.......tD.....
00C0: 5E 50 BB 4C DE 0F 1E 7E   E9 D1 84 9D 91 1F D0 00  ^P.L............
00D0: 20 FD E4 D5 C4 9F 10 EF   C7 4F 9A D8 0D F8 28 08   ........O....(.
00E0: F3 10 94 A2 70 88 51 25   C4 25 81 8B 9E FE 07 0F  ....p.Q%.%......
00F0: 52 9A 5B 65 19 AA EB 35   3C 15 A4 47 31 8B 40 2B  R.[e...5<..G1.@+

]
[正在存储f:\project\sslclienttwo.keystore]

为了方便记忆:口令也用alaric

6、从客户端密钥库导出数字证书
命令:keytool.exe -exportcert -v -alias sslsockettwo -file f:\project\sslsockettwo.cer -keystore f:\project\sslclienttwo.keystore
输入密钥库口令:
存储在文件 <f:\project\sslsockettwo.cer> 中的证书
口令用alaric
7、将客户端数字证书导入到服务器的密钥库中
keytool.exe -importcert -v -alias sslsockettwocer -file f:\project\sslsockettwo.cer -keystore f:\project\sslsocketserver.keystore 
输入密钥库口令:
再次输入新口令:
所有者: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=zh
发布者: CN=zhang, OU=caituo, O=caituo, L=hz, ST=zj, C=zh
序列号: 5f7fe563
有效期开始日期: Sat May 25 21:29:44 CST 2013, 截止日期: Fri Aug 23 21:29:44 CST
2013
证书指纹:
         MD5: 44:FF:75:9B:6E:63:D7:11:BA:79:A4:63:68:C4:F3:A9
         SHA1: 0C:D8:55:C0:73:09:5B:D5:AD:84:21:91:C4:03:8D:06:BD:21:AB:05
         SHA256: 28:5C:75:21:DA:2D:B6:1C:85:1F:1E:81:14:08:E6:27:7C:B2:D2:DE:92:
4D:8C:CD:AE:51:5B:3D:00:D2:B1:DF
         签名算法名称: SHA256withRSA
         版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 69 9B C2 D5 0F B1 EF 7D   14 B1 2C 7C A6 6E 83 80  i.........,..n..
0010: AF 98 63 20                                        ..c
]
]

是否信任此证书? [否]:  y
证书已添加到密钥库中
[正在存储f:\project\sslsocketserver.keystore]

这样就完成了所有的证书及其 keystore生成。

上面做的时候
证书信息可以随便写
名称也可以随便写
但是保持引用一直就可以了

 

参考地址:http://chrui.iteye.com/blog/1018786
 

分享到:
评论

相关推荐

    ssl证书(nginx+tomcat+java代码适用)

    ssl自制全套证书(包含服务器端、客户端、ca端的证书,格式有.crt,.key,.truststore,.keystore,.p12,.cer,.pem等类型),当时要配置webservice接口、tomca、nginx通过ssl访问的证书,弄了好久才生成了一套能使用的。...

    java 采用ssl的socket交互

    详细介绍了java如何使用SSL来进行socket通信了 最主要的是介绍了如何使用keytool来生成.keystore文件 ps:设置一分是希望那些刚入门或则对csdn访问不多的朋友 多花点时间 表面上市搞积分 事实上是有帮助的。 如果你...

    activemq ssl双向认证连接

    使用activemq依赖库连接, 该项目为java工程,内有ssl证书生成方式链接,不清楚可私信

    SSL转换工具jks2pfx

    java实现ssl自签名。 由于生成的证书是jks格式,nginx不能直接用,需要要转成PEM格式,这要用到jks2pfx工具进行转换。 jks2pfx的命令格式:JKS2PFX.bat keystore password alias exportname keystore:KeyStore文件...

    ssl-networking-java:SSL 和表示层加密

    网络项目里斯·诺塔贾科莫默认情况下,分析师和收藏家将尝试连接到localhost:9998和localhost:9999上的董事和银行##0 - 设置####0.1 生成密钥对: : 生成密钥库(分发给银行和董事) 生成证书将证书转换为信任库...

    SSL配置手册

    SSL配置手册- Tomcat 5 密钥和CSR生成指南 1. 安装JDK 安装Tomcat需要JDK支持。如果您还没有JDK的安装则可以参考 Java SE Development Kit (JDK) 下载。下载地址...

    openssl生成认证证书的工具

    最简单的方法,直接用java里的keytool工具生成一个keystore文件,然后直接用这个文件启用https就可以了。 方法如下: 命令行执行%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA 执行过程中会询问你一些...

    使用java生成证书及其openssl获取公私钥

    使用java生成证书及其openssl获取公私钥 使用java生成yangjie.jks证书, 即生成公私钥密码对 keytool -genkeypair -alias yangjie -keyalg RSA -keypass yangjie -keystore yangjie.jks -storepass yangjie keytool...

    certifiable:一个帮助工具,简化了开发时间SSL证书的创建,该证书可与Java Web服务器(如Jetty)一起使用

    然后,它以Java Keystore的形式创建一个最终用户证书和密钥。 这比依赖于您信任单个根证书同时保留根密钥以允许创建更多本地证书的各种工具更加安全。 虽然这很方便,但肯定是不安全的。 可认证仅依靠Java keytool...

    KeyTool IUI v2.3

    用于生成,转换,查看JAVA SSL证书的GUI工具。 **** REQUIREMENTS **** JRE (Java Runtime Environment 1.6), or higher

    SSL_connection:带有自签名证书的 SSL 连接

    它可以使用命令生成:它可以在我们的服务器应用程序的 /src/main/resources 中使用以下示例命令生成: keytool -genkey -alias serverca -keyalg RSA -keystore keystore.jks -validity 30Validity 参数是证书有效...

    ssl_server_client_poc:了解SSLServerSocket,SSLSocket,Keytool,TrustStore等

    client_poc 了解SSLServerSocket,SSLSocket,Keytool,TrustStore等生成Java密钥库和密钥对keytool -genkey -alias mydomain -keyalg RSA -keystore sample.jks -storepass 123456 为现有的Java密钥库生成证书签名...

    bcprov-ext-jdk15on-160.jar

    用于制作Android App进行SSL通信时所需使用的bks格式证书。 为了生成Android用的BKS证书文件,采取如下操作: 1.下载 bcprov-ext-jdk15on-160.jar,复制到jdk_home\jre\lib\ext 2.配置bcprov,在 jdk_home\jre\lib\...

    java 面试题 总结

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变...

    kafka添加ssl认证

    请先安装java和openssl. 生成证书脚本ca.sh: #!/bin/bash #Step 1 keytool -keystore /var/soft/ca/server.keystore.jks -alias localhost -validity 365 -genkey #Step 2 openssl req -new -x509 -keyout ca-key -...

    xmljava系统源码-xcxcms:微信小程序cms系统包括Java后台小程序客户端

    keystorePass="生成证书时的口令" /&gt; port: https的端口,默认8443 clientAuth:设置是否双向验证,默认为false,设置为true代表双向验证keystoreFile keystoreFile: keystore证书的路径 keystorePass: 生成keystore时...

    jdk1.8.0_181(64位).7z

    KeyStore增强功能,包括新的Domain KeyStore类型java.security.DomainLoadStoreParameter,以及-importpasswordkeytool实用程序的新命令选项 SHA-224消息摘要 增强了对NSA Suite B密码学的支持 更好地支持高熵...

    超级有影响力霸气的Java面试题大全文档

     JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要...

    SecurityBank:Secure Bank应用程序是一个后端项目,以Java实施Spring Security

    将生成的自签名证书“​​ springsecury.p12”放在文件夹“ src / resources / certificates”中。 请参阅“ application.yml”以设置“ ssl”配置。 keytool -genkeypair -alias springsecureapp -keyalg RSA -key...

    boiler-app:Springboot CRUD启动器

    为ssl生成密钥库:keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore tomcat.p12 -validity 3650 -storepass password -ext“ SAN:c = DNS:localhost,IP:127.0.0.1” ...

Global site tag (gtag.js) - Google Analytics