未认证时发送消息命令curl -d '{'key':'value'}' -H "Content-Type:application/json" http://host:port/api,那么带证书时是如何带证书给服务端,带的是什么证书?
双向认证
先看看命令长啥样子:
curl -v -d '{'key':'value'}' -H "Content-Type:application/json" https://host:port/api --cacert /home/ca.cert --key /home/client.key --cert /home/client.cert
curl --help可以看命令各字段含义,也可以抓包看消息体。因为是加密的,消息体内容肯定看不到,ssl是发生在TCP建链过程中,握手信息可以看出些端倪。
单向认证
先看看命令长啥样子:
curl -v -d '{'key':'value'}' -H "Content-Type:application/json" https://host:port/api --cacert /home/ca.cert
单向认证忽略证书(-k)
curl -v -k -d '{'key':'value'}' -H "Content-Type:application/json" https://host:port/api
ipv6的curl命令
curl -6 -g https//:[ipv6]:port/api ,其余同ipv4。
总结
curl模拟的是客户端,客户端上ca和client是服务端提前取到的,在tcp建链时进行证书校验。
网友评论