当前位置: 代码网 > it编程>编程语言>Java > openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证

openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证

2024年08月01日 Java 我要评论
openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证

1. 生成根证书

1.1 生成ca证书私钥

openssl genrsa -aes256 -out ca.key 2048

1.2 取消密钥的密码保护

openssl rsa -in ca.key -out ca.key

1.3 生成根证书签发申请文件(csr文件)

openssl req -new -sha256 -key ca.key -out ca.csr -subj "/c=cn/st=fj/l=xm/o=none/ou=none/cn=localhost/emailaddress=test@test.com"

上述参数含义
  • req----执行证书签发命令

  • -new----新证书签发请求

  • -key----指定私钥路径

  • -out----输出的csr文件的路径

  • c-----国家(country name)

  • st----省份(state or province name)

  • l----城市(locality name)

  • o----公司(organization name)

  • ou----部门(organizational unit name)

  • cn----产品名(common name)

  • emailaddress----邮箱(email address)

1.4 生成自签发根证书(cer文件)

openssl x509 -req -days 36500 -sha256 -extensions v3_ca -signkey ca.key -in ca.csr -out ca.cer

上述参数含义
  • x509----生成x509格式证书
  • -req----输入csr文件
  • -days----证书的有效期(天)
  • -signkey----签发证书的私钥
  • -in----要输入的csr文件
  • -out----输出的cer证书文件

2. 生成服务端证书

2.1 生成服务端私钥

openssl genrsa -aes256 -out server.key 2048

2.2 取消密钥的密码保护

openssl rsa -in server.key -out server.key

2.3 生成服务端签发申请文件(csr文件)

openssl req -new -sha256 -key server.key -out server.csr -subj "/c=cn/st=fj/l=xm/o=none/ou=none/cn=localhost/emailaddress=test@test.com"

2.4 使用ca证书签署服务器证书

openssl x509 -req -days 36500 -sha256 -extensions v3_req -ca ca.cer -cakey ca.key -caserial ca.srl -cacreateserial -in server.csr -out server.cer

上述参数含义
  • -ca----指定ca证书的路径
  • -cakey----指定ca证书的私钥路径
  • -caserial----指定证书序列号文件的路径
  • -cacreateserial----表示创建证书序列号文件(即上方提到的serial文件),创建的序列号文件默认名称为-ca,指定的证书名称后加上.srl后缀

3. 生成客户端证书

3.1 生成客户端私钥

openssl genrsa -aes256 -out client.key 2048

3.2 取消密钥的密码保护

openssl rsa -in client.key -out client.key

3.3 生成客户端端签发申请文件(csr文件)

openssl req -new -sha256 -key client.key -out client.csr -subj "/c=cn/st=fj/l=xm/o=none/ou=none/cn=localhost/emailaddress=test@test.com"

3.4 使用ca证书签署客户端器证书

openssl x509 -req -days 36500 -sha256 -extensions v3_req -ca ca.cer -cakey ca.key -caserial ca.srl -cacreateserial -in client.csr -out client.cer

4. 单向认证测试

4.1 服务端启动服务

openssl s_server -cafile ca.cer -cert server.cer -key server.key -accept 44444

4.2 客户端连接

openssl s_client -cafile ca.cer -cert client.cer -key client.key -host 127.0.0.1 -port 44444

5. 双向认证测试

5.1 服务端启动服务

openssl s_server -cafile ca.cer -cert server.cer -key server.key -accept 44444 -verify 1

5.2 客户端连接

openssl s_client -cafile ca.cer -cert server.cer -key server.key -cert client.cer -key client.key -host 127.0.0.1 -port 44444

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com