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

这篇具有很好参考价值的文章主要介绍了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文章来源地址https://www.toymoban.com/news/detail-858142.html

到了这里,关于openssl自签名CA根证书、服务端和客户端证书生成并模拟单向/双向证书验证的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux中UDP服务端和客户端

    2024年02月13日
    浏览(42)
  • C++实现WebSocket通信(服务端和客户端)

    天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 这里单纯是个人总结,如需更官方更准确的websocket介绍可百度 websocket是一种即时通讯协

    2024年02月09日
    浏览(45)
  • Nacos源码 (5) Grpc服务端和客户端

    Nacos 2.x在服务端与客户端直接增加了GRPC通信方式,本文通过2.0.2版本源码,简单分析GRPC通信方式: 服务器启动 客户端连接 客户端心跳 服务器监控检查 api/src/main/proto/nacos_grpc_service.proto文件: 文件定义了通信层的service和message结构,业务层请求响应的序列化和反序列化是Na

    2024年02月10日
    浏览(47)
  • netty的TCP服务端和客户端实现

    2024年02月21日
    浏览(43)
  • UDP服务端和客户端通信代码开发流程

    TCP: 传输控制协议,面向连接的,稳定的,可靠的,安全的数据集流传递 稳定和可靠:丢包重传 数据有序:序号和确认序号 流量控制:稳定窗口 UDP :用户数据报协议 面向无连接的,不稳定的,不可靠,不安全的数据报传递=---更像是收发短信,UDP传输不需要建立连接,传输效率更高

    2024年02月06日
    浏览(44)
  • 网络编程——socket服务端和客户端(TCP)

    所谓套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通

    2024年02月07日
    浏览(77)
  • Golang实现之TCP长连接-------服务端和客户端

    一、数据包的数据结构 (所有字段采用大端序) 帧头 帧长度(头至尾) 帧类型 帧数据 帧尾 1字节 4字节 2字节 1024字节 1字节 byte int short string byte 0xC8 0xC9 二、Server端 实现代码 1、main.go 2、server.go 3、protocol.go 4、response.go 5、result.go 三、Client端 实现代码

    2024年02月07日
    浏览(52)
  • linux搭建http源【服务端和客户端详细说明】

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 [root@master ~]# 关闭防火墙和selinux firewall的话,直接 systemctl stop firewalld 即可 如果使用的是iptables,则吧firewalld替换成iptables [root@master ~]# systemctl is-active firewalld active [root@master ~]# [root@master ~]# systemctl stop firewalld [root@master ~]# [root@m

    2024年04月13日
    浏览(38)
  • 服务端和客户端通信-TCP(含完整源代码)

    目录 简单TCP通信实验 分析 1、套接字类型 2、socket编程步骤 3、socket编程实现具体思路 实验结果截图 程序代码 实验设备:     目标系统:windows 软件工具:vs2022/VC6/dev 实验要求: 完成TCP服务端和客户端的程序编写; 实现简单字符串的收发功能。 需附上代码及运行结果截图

    2024年02月07日
    浏览(72)
  • 服务端和客户端通信--UDP(含完整源代码)

    实验设备:     目标系统:Windows 软件工具:vs2022/vc6/dev   实验要求: 完成UDP服务端和客户端的程序编写; 分别实现UDP一对一通信和广播通信功能。 实验内容: -static-libgcc 一对一通信 : 1 、加载/释放Winsock库,创建套接字(WSAStartup()/socket())。 加载方法: WSADATA wsa; /*初始化

    2024年02月14日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包