配置SDK验证服务端证书
开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。
OBS C SDK提供了对服务端证书验证的支持,以确保OBS服务来自于受信服务端。配置验证服务端证书的步骤如下:
如果访问的OBS服务端的根证书是由权威机构颁发的,可以忽略步骤1,2(C SDK的证书库中默认已加入了权威机构的根证书)。
- 获取OBS服务端的根证书(例如从IE浏览器的“Internet属性 > 内容 > 证书”中导出),并保存为文件obs.cer。
- 把obs.cer证书保存到特定目录。
- 应用程序使用https协议通信,接口调用方法参考HTTPS服务接口使用方法。
参数描述
|
参数名称 |
参数类型 |
是否必选 |
描述 |
|---|---|---|---|
|
protocol |
obs_protocol |
必选 |
协议参数。值为OBS_PROTOCOL_HTTPS或OBS_PROTOCOL_HTTP |
|
ca_conf |
obs_certificate_conf |
可选,如果protocol为OBS_PROTOCOL_HTTPS则为必选 |
证书配置策略。值为OBS_NO_CERTIFICATE、OBS_DEFAULT_CERTIFICATE或OBS_DEFINED_CERTIFICATE |
|
path |
char * |
可选,如果ca_conf为OBS_DEFINED_CERTIFICATE则为必选 |
证书路径 |
|
path_length |
int |
可选,如果path不为NULL则为必选 |
证书路径长度 |
代码示例
1. http通信 ret_status = init_certificate_by_path(OBS_PROTOCOL_HTTP, OBS_NO_CERTIFICATE, NULL, 0); init_obs_options(&option); 2. https通信,使用默认证书,即lib目录下的client.pem ret_status = init_certificate_by_path(OBS_PROTOCOL_HTTPS, OBS_DEFAULT_CERTIFICATE, NULL, 0); init_obs_options(&option); 3. https通信,应用程序指定证书路径及长度 ret_status = init_certificate_by_path(OBS_PROTOCOL_HTTPS, OBS_DEFINED_CERTIFICATE, path, path_length); init_obs_options(&option);
2. 您也可以在init_obs_options之前调用init_certificate_by_buffer实现https通信。
参数描述
|
参数名称 |
参数类型 |
是否必选 |
描述 |
|---|---|---|---|
|
buffer |
char * |
必选 |
证书内容 |
|
buffer_length |
int |
必选 |
证书内容长度 |
代码示例
ret_status = init_certificate_by_buffer(ca_buffer, length); init_obs_options(&option);