如何生成自签名双向认证证书 ssl

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何生成自签名双向认证证书 ssl相关的知识,希望对你有一定的参考价值。

参考技术A 1.创建CA私钥: ca.key

2.创建根证书请求文件ca.csr:

这里需要填入配置信息:

3.自签根证书ca.cer:

4.【这一步可做可不做】生成p12格式根证书ca.p12(密码填写123456,之前ca.csr的密码,ps:这里输入的时候是不可见的输入完成后回车即可)

5.生成服务端私钥key server.key:

6.生成服务端请求文件 server.csr

填入证书配置信息:

server.csr

7.生成服务端证书server.cer(ca.cer,ca.key,servr.key,server.csr这4个生成服务端证书):

8.生成客户端key client.key:

9.生成客户端请求文件client.csr:

填入证书配置信息:

10.生成客户端证书 client.cer:

11.【可做可不做】生成客户端p12格式根证书client.p12(密码设置123456):

至此,证书就制作完毕了:

原因:请求没有带上ca证书,无法校验服务器的证书 

解决方法1:

curl 加上-cacert ca证书 校验服务器证书

解决方法2:

curl 加上-k 可以不校验服务器证书。

网上给出的答复是:

Whatever method you use to generate the certificate and key files, the Common Name value used for the server and client certificates/keys must each differ from the Common Name value used for the CA certificate. Otherwise, the certificate and key files will not work for servers compiled using OpenSSL.

When OpenSSL prompts you for the Common Name for each certificate, use different names.

解决方案:

参考文档链接:https://www.jianshu.com/p/094c7fc8cb85,感谢作者CQ_TYL

以上是关于如何生成自签名双向认证证书 ssl的主要内容,如果未能解决你的问题,请参考以下文章

NGINX 配置 SSL 双向认证

https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL

使用SSLSocket实现双向认证(keytool证书创建双向认证证书(这里有根证书)的详细步骤以及踩雷)

Netty中使用SSL 双向认证(包括证书生成)

nginx和iis下的SSL双向认证教程【ca 自签 ssl证书】

https单向认证和双向认证区别