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

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
 

分享到:
评论

相关推荐

    JDK生成ssl证书

    ### JDK生成SSL证书详解 #### 一、概述 在网络安全领域中,SSL(Secure Sockets Layer,安全套接层)证书扮演着至关重要的角色。它主要用于确保数据传输的安全性,防止信息被第三方窃取或篡改。对于企业级应用而言...

    java keystore导出.pfx .key .crt 私钥

    2. **导出私钥和证书链到`.pfx`**:如果需要导出包含私钥的`.pfx`文件,可以使用以下命令: ``` keytool -importkeystore -srckeystore mykeystore.jks -destkeystore mykey.pfx -deststoretype PKCS12 ``` `-...

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

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

    生成SSL证书详细信息

    - 在命令行中输入以下命令来生成服务器密钥对和证书请求: ```shell keytool -genkey -alias tomcatserver -validity 3650 -keyalg RSA -keypass qqsylkj2012Jellen -storepass qqsylkj2012Jellen -dname ...

    java ssl证书制作工具

    5. **导入到服务器或应用**:将生成的证书和私钥导入到服务器的密钥库(如Java的keystore或Apache Tomcat的server.xml配置文件),或者导入到浏览器的信任证书存储。 6. **验证和测试**:完成导入后,可以通过访问...

    java-SSL证书及安装配置详解.rar

    1. **加载密钥库(KeyStore)**:使用KeyStore类加载包含私钥和证书的文件,设置密钥库类型(如JKS或PKCS12),以及密钥库和密钥密码。 2. **创建KeyManager**:使用KeyManagerFactory创建KeyManager实例,传入加载...

    Java ssl socket 双向认证

    1. **创建密钥库和信任库**:使用keytool工具生成和管理密钥对,将服务器和客户端的公钥证书放入各自的密钥库,将对方的公钥证书放入各自的信任库。 2. **初始化SSLContext**:加载密钥库和信任库,创建KeyManager...

    Tomcat SSL 认证设置及证书自己生成

    keytool是Java提供的命令行工具,用于管理JDK的密钥库,也可以用于生成和管理SSL证书。 **自签发CA证书** 1. 首先,你需要使用OpenSSL生成一个私钥(private key)和证书签名请求(CSR)。私钥将被用于解密通过SSL...

    关于生成SSL数字证书的总结

    关于生成SSL数字证书的总结 在本文中,我们将详细介绍如何生成SSL数字证书,并在Tomcat服务器上配置SSL数字证书。同时,我们还将总结一些常见的问题...通过本文,我们希望帮助读者更好地理解SSL数字证书的生成和配置。

    springboot下配置SSL证书HTTPS访问

    Keystore 中存储了公钥、私钥和证书链。 SpringBoot 配置 SSL 在 SpringBoot 中,需要在 application.properties 文件中添加以下配置以启用 SSL: `server.ssl.enabled=true` `server.ssl.key-store=classpath:...

    SSL证书安装.zip

    - **导入证书**:将SSL证书转换为PKCS12格式,然后使用Java的`keytool`导入到Keystore中。 - **编辑server.xml**:在`Connector`元素中配置SSL,指定Keystore路径、密码和端口。 - **重启Tomcat**:修改后,重启...

    java keytool安全证书学习

    以下是使用Java Keytool生成和管理KeyStore和TrustStore的基本步骤: 1. **生成服务器私钥**: 使用`keytool -genkey -alias serverkey -keystore kserver.keystore`命令,你可以生成一个名为`serverkey`的别名,...

    客户端与服务器SSL双向认证(客户端:java-服务端:java)

    - 配置SSLContext:使用KeyManagerFactory和TrustManagerFactory加载Keystore和Truststore,然后创建SSLContext实例。 - 配置ServerSocket:在ServerSocket上启用SSL,通过SSLContext的getServerSocketFactory()...

    Java实现SSL双向认证的方法

    在Java程序中,需要创建并配置SSLContext对象,加载KeyManagers和TrustManagers,这些组件分别管理私钥和证书的信任策略。 5. **创建SSLSocket或SSLServerSocket**: 使用配置好的SSLContext创建SSLSocket或...

    KeyTool 工具生成X.509证书

    KeyTool是Java Development Kit (JDK)的一部分,它提供了一系列命令来创建、查看、导出、导入和管理密钥对和证书。下面是一些主要的KeyTool命令: 1. **生成密钥对**:`keytool -genkeypair` 使用此命令,你可以...

    ssl_java.zip

    在Java中实现SSL双向认证,也被称为mutual authentication,是指客户端和服务器都需要向对方证明自己的身份。以下将详细讲解这个过程及其相关的Java SSL包使用。 首先,了解SSL的工作流程。SSL握手过程通常包括以下...

    TomcatSSL证书部署指南

    对于Tomcat服务器而言,通常只需要包含JKS(Java KeyStore)格式的证书文件。在证书申请过程中,需要提供必要的信息,以生成正确的证书,例如服务器域名、公司信息等。获取到的压缩文件中,包含了对应不同服务器类型...

    Java实现浏览器CA证书的签名和验证

    本文将详细介绍CA证书的作用、在Java中如何生成和使用CA证书进行签名和验证。 首先,CA证书是网络通信中用来标识通信各方身份的一系列数据。数字证书由一个权威的机构,即证书颁发机构(Certification Authority, CA...

    Java SSLSocket的使用

    在Java中,可以使用KeyStore类来管理证书和私钥。KeyStore对象存储了用户的数字证书和私钥,而TrustStore则存储了用户信任的根证书颁发机构(CA)的证书。 8. **性能优化**: 为了提高性能,可以启用会话复用,...

Global site tag (gtag.js) - Google Analytics