https证书查看及其验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https证书查看及其验证相关的知识,希望对你有一定的参考价值。

参考技术A 1) 已拿到证书

openssl x509 -in ca.cert -noout -text

openssl x509 -in server.cert -noout -text

openssl x509 -in client.cert -noout -text

2) 对端建链所使用的证书

openssl s_client  [-connect host:port>]          -showcerts  </dev/null 2>/dev/null | openssl x509 -outform PEM > server.cert

方法1: 如果是ca签发的服务端证书或客户端证书,执行结果返回OK。

openssl verify -CAfile ca.cert server.cert

openssl verify -CAfile ca.cert client.cert

方法2: 从客户端上curl调用服务端接口

双向认证([证书提供方]-[证书类型].cert):curl -v --cacert server-ca.cert --cert server-client.cert --key server-client.key -g https://[ipv6]:443/url

curl -v --cacert server-ca.pem --cert server-client.pem --key server-clientkey.pem -g  https://[ipv6]:443/url

单向认证(-k客户端忽略校验服务端证书):

curl -v --cacert server-ca.cert  -g https://[ipv6]:443/url

curl -v -k  -g https://[ipv6]:443/url

以上-v可以看到调用接口时服务端返回的服务端证书server-server.cert的详细内容

方法3:openssl  s_client

openssl s_client [-connect host:port>] [-verify depth] [-cert filename]  [-key filename] [-CApath directory] [-CAfile filename] [-reconnect]

https通讯的过程

https验证过程

首先有三个角色:客户端、服务端、CA证书中心

  1. 服务端使用非对称加密算法生成公钥和私钥
  2. 服务端将公钥发给CA证书中心,并获得CA证书(ssl证书)
  3. 客户端https证书请求服务器,服务器将公钥和证书发给客户端
  4. 客户端请求CA证书中心,验证证书,验证请求的https服务器是真实的,证书的验证也是用非对称加密算法
  5. CA中心验证证书, 如果通过
  6. 客户端用服务器发送的公钥加密对称加密密钥发给服务器
  7. 服务器用私钥解密,获得对称加密密钥,于是客户端和服务器使用这个对称加密密钥通讯,至于为什么用对称加密,是因为对称加密币非对称加密性能好、更快

以上是关于https证书查看及其验证的主要内容,如果未能解决你的问题,请参考以下文章

HttpClient 怎么忽略证书验证访问https

https证书验证的基本方法

Chromium https 数字证书验证

https证书验证原理是什么

我看到有些不怎么正规的网站也有https。安装了https证书的网站一定可信吗?

https怎么获得证书,网站https访问证明弄?