HTTPS请求配置
更新时间:
本文为您介绍V1.0 SDK如何进行HTTPS请求配置。
使用HTTPS协议
可以通过设置忽略证书验证,支持guzzlehttp的其他配置guzzlephp request options
重要
使用HTTPS协议访问OpenAPI时,SDK会默认开启校验SSL/TLS证书有效性,若您代码环境没有证书,则会报错证书校验失败。
为保障环境通信安全,建议您保持开启,若在测试环境必须忽略证书校验,可以通过参数verify
设置。
特化调用
通过Request配置HTTPS请求示例
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
use AlibabaCloud\Ecs\Ecs;
try {
// 请确保已设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'));
$request = Ecs::v20140526()->describeRegions();
$result = $request
->scheme('https') // 设置请求协议。
->verify(false) // 设置是否进行证书校验,false忽略证书校验。为保障环境通信安全,建议您保持开启。
->version('2014-05-26')
->product('Ecs')
->action('DescribeRegions')
->regionId('cn-hangzhou')
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
泛化调用
RPC请求配置HTTPS请求示例
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
try {
// 请确保已设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'));
$result = AlibabaCloud::rpc()
->product('Ecs')
->version('2014-05-26')
->action('DescribeRegions')
->regionId('cn-hangzhou')
->scheme('https') // 设置请求协议。
->verify(false) // 设置是否进行证书校验,false忽略证书校验。为保障环境通信安全,建议您保持开启。
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
// 此处仅做打印展示,请谨慎对待异常处理,在工程项目中切勿直接忽略异常。
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
ROA请求配置HTTPS请求示例
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
try {
// 请确保已设置环境变量ALIBABA_CLOUD_ACCESS_KEY_ID和ALIBABA_CLOUD_ACCESS_KEY_SECRET。
AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'));
$result = AlibabaCloud::roa()
->product('CS')
->version('2015-12-15')
->action('DescribeClustersV1')
->pathPattern('/api/v1/clusters')
->regionId('cn-hangzhou')
->options([
'query' => [
],
])
->scheme('https') // 设置请求协议。
->verify(false) // 设置是否进行证书校验,false忽略证书校验。为保障环境通信安全,建议您保持开启。
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
传入自定义证书
为保障环境通信安全,建议您使用HTTPS请求协议,并开启证书校验。PHP V1.0 SDK支持以下方式进行证书校验。
在request上设置:
<?php
use AlibabaCloud\Client\AlibabaCloud;
$request = AlibabaCloud::rpc()
->product('Sts')
->version('2015-04-01')
->action('GenerateSessionAccessKey')
->host('sts.ap-northeast-1.aliyuncs.com');
// 在操作系统中寻找
$request->verify(true);
// 使用指定的文件
$request->verify(['verify' => '/path/to/cert.pem']);
// 使用指定的文件和密码
$request->verify(['verify' => ['/path/to/cert.pem','password']]);
2. 在client上设置:
<?php
use AlibabaCloud\Client\AlibabaCloud;
// 在操作系统中寻找
AlibabaCloud::getDefaultClient()
->verify(true)
->asDefaultClient();
// 使用指定的文件
AlibabaCloud::getDefaultClient()
->verify(['verify' => '/path/to/cert.pem'])
->asDefaultClient();
// 使用指定的文件和密码
AlibabaCloud::getDefaultClient()
->verify(['/path/to/cert.pem','password'])
->asDefaultClient();
文档内容是否对您有帮助?