一 证书相关
① -k
1、客户端忽略'服务端证书'校验 -k | --insecure --> '单向'
[1]、这个选项显式地允许curl '执行不安全' 的'SSL连接和传输'
[2]、所有SSL连接都试图通过使用'默认安装的CA证书捆绑包'来确保安全
[3]、这使得所有被认为是'不安全'的连接失败,除非使用'-k' --> '自签形式'
场景: 一般不是CA签名的'自签'证书
② --cert-type
--cert-type '证书类型'
1、告诉curl提供的'证书'是'什么类型'的证书
2、可以为'PEM'、'DER'和'ENG'是公认的类型
3、如果'未指定',则'缺省'为'PEM'
4、如果'多次使用'此选项,将使用'最后一个'选项
③ --cacert
--cacert 'CA证书'
1、告诉curl使用'指定的证书文件'来'验证'对方证书
2、文件可能包含'多个CA证书',证书必须采用'PEM'格式
3、通常情况下,curl是使用'默认文件'构建的,因此此选项通常用于'更改默认文件'
④ --capath
--capath CA证书'路径'
1、告诉curl使用'指定的证书目录'来验证'对等方'
2、可以通过使用':冒号'分隔多条路径,例如path1:path2:path3,证书必须是'PEM格式'的
3、如果curl是基于OpenSSL构建的,那么目录必须使用OpenSSL提供的c_rehash程序进行处理
备注: 如果--cacert文件包含'许多'CA证书,推荐使用'--capath'取代'--cacert'
4、如果设置了此选项,将'忽略默认的capath值',如果多次使用,将使用'最后'一个值
⑤ --cert
--cert | -E '客户端证书' --> "双向认证 --> 客户端证书校验"
1、告诉curl在使用HTTPS、FTPS或其他'基于SSL的协议'获取文件时使用'指定的客户端证书文件'
2、如果使用安全传输,证书必须为'PKCS#12格式',如果使用任何其他引擎,证书必须为'PEM格式'
3、如果未指定'可选'密码,将在终端上查询该密码
注意: 这个选项假设一个certificate是'私钥和私钥'连接在一起的,参见'--cert'和'--key'
⑥ --key
--key '私钥'
备注: '私钥文件名',允许在此'单独文件中'提供私钥,如果'多次'使用此选项,将使用'最后'一个选项
⑦ --ciphers
--ciphers '加密套件' 了解
⑧ --pass
1、--pass '私钥的密码'
备注: 私钥的'密码短语',如果'多次使用'此选项,将使用'最后一个'选项
⑨ TLS版本
1、选项--tlsv1.0,--tlsv1.1并--tlsv1.2 设置curl 将使用的'最低TLS 版本'
2、要指定'最大'使用--tls-max <VERSION>
1、-1 '--tlsv1' --> '7.29.0'版本'有'的参数,后续'没有'了,通过'其它方式'提供
备注: 注意 '高版本' curl '默认'的SSL协议版本,以及'不同ssl协议参数' 哪个版本'引入'的
⑩ 简单案例
curl -k --cert ./client.crt --key ./client.key --cacert ./ca.pem