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

  • 17
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赴前尘

喜欢我的文章?请我喝杯咖啡吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值