与 SSL 单向认证相关的 curl_easy_setopt
选项有以下几个:
- CURLOPT_SSL_VERIFYPEER: cURL 是否验证对等证书(peer's certificate),值为 1,则验证,为 0 则不验证。要验证的交换证书可以在 CURLOPT_CAINFO 选项中设置,或在 CURLOPT_CAPATH中设置证书目录。
- CURLOPT_SSL_VERIFYHOST:值为1 : cURL 检查服务器SSL证书中是否存在一个公用名(common name);值为2: cURL 会检查公用名是否存在,并且是否与提供的主机名匹配;0 为不检查名称。这里的 common name 是在创建证书过程中指定,例如 subj 选项值中的
/CN
值;openssl req -subj "/C=CN/ST=IL/L=ShenZhen/O=Tencent/OU=Tencent/CN=luffichen_server.tencent.com/emailAddress=luffichen@www.tencent.com" ...
- CURLOPT_CAINFO:一个保存着1个或多个用来让服务端验证的证书的文件名。这个参数仅仅在和CURLOPT_SSL_VERIFYPEER一起使用时才有意义。
- CURLOPT_CAPATH:一个保存着多个CA证书的目录。这个选项是和CURLOPT_SSL_VERIFYPEER一起使用的。
与 SSL 双向认证相关的 curl_easy_setopt
选项有以下几个:
- CURLOPT_SSLCERT:客户端证书路径
- CURLOPT_SSLCERTTYPE:证书的类型。支持的格式有"PEM" (默认值), "DER"和"ENG"。
- CURLOPT_SSLKEY:客户端私钥的文件路径
- CURLOPT_SSLKEYTYPE:客户端私钥类型,支持的私钥类型为"PEM"(默认值)、"DER"和"ENG"。
- CURLOPT_KEYPASSWD:客户端私钥密码,私钥在创建时可以选择加密。