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证书中心
- 服务端使用非对称加密算法生成公钥和私钥
- 服务端将公钥发给CA证书中心,并获得CA证书(ssl证书)
- 客户端https证书请求服务器,服务器将公钥和证书发给客户端
- 客户端请求CA证书中心,验证证书,验证请求的https服务器是真实的,证书的验证也是用非对称加密算法
- CA中心验证证书, 如果通过
- 客户端用服务器发送的公钥加密对称加密密钥发给服务器
- 服务器用私钥解密,获得对称加密密钥,于是客户端和服务器使用这个对称加密密钥通讯,至于为什么用对称加密,是因为对称加密币非对称加密性能好、更快
以上是关于https证书查看及其验证的主要内容,如果未能解决你的问题,请参考以下文章
HttpClient 怎么忽略证书验证访问https
https证书验证的基本方法
Chromium https 数字证书验证
https证书验证原理是什么
我看到有些不怎么正规的网站也有https。安装了https证书的网站一定可信吗?
https怎么获得证书,网站https访问证明弄?