HTTPS請求配置
更新時間:
本文為您介紹V1.0 SDK如何進(jìn)行HTTPS請求配置。
使用HTTPS協(xié)議
可以通過設(shè)置忽略證書驗證,支持guzzlehttp的其他配置guzzlephp request options
重要
使用HTTPS協(xié)議訪問OpenAPI時,SDK會默認(rèn)開啟校驗SSL/TLS證書有效性,若您代碼環(huán)境沒有證書,則會報錯證書校驗失敗。
為保障環(huán)境通信安全,建議您保持開啟,若在測試環(huán)境必須忽略證書校驗,可以通過參數(shù)verify
設(shè)置。
特化調(diào)用
通過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 {
// 請確保已設(shè)置環(huán)境變量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') // 設(shè)置請求協(xié)議。
->verify(false) // 設(shè)置是否進(jìn)行證書校驗,false忽略證書校驗。為保障環(huán)境通信安全,建議您保持開啟。
->version('2014-05-26')
->product('Ecs')
->action('DescribeRegions')
->regionId('cn-hangzhou')
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
// 此處僅做打印展示,請謹(jǐn)慎對待異常處理,在工程項目中切勿直接忽略異常。
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
// 此處僅做打印展示,請謹(jǐn)慎對待異常處理,在工程項目中切勿直接忽略異常。
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}
泛化調(diào)用
RPC請求配置HTTPS請求示例
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
try {
// 請確保已設(shè)置環(huán)境變量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') // 設(shè)置請求協(xié)議。
->verify(false) // 設(shè)置是否進(jìn)行證書校驗,false忽略證書校驗。為保障環(huán)境通信安全,建議您保持開啟。
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
// 此處僅做打印展示,請謹(jǐn)慎對待異常處理,在工程項目中切勿直接忽略異常。
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
// 此處僅做打印展示,請謹(jǐn)慎對待異常處理,在工程項目中切勿直接忽略異常。
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 {
// 請確保已設(shè)置環(huán)境變量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') // 設(shè)置請求協(xié)議。
->verify(false) // 設(shè)置是否進(jìn)行證書校驗,false忽略證書校驗。為保障環(huán)境通信安全,建議您保持開啟。
->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;
}
傳入自定義證書
為保障環(huán)境通信安全,建議您使用HTTPS請求協(xié)議,并開啟證書校驗。PHP V1.0 SDK支持以下方式進(jìn)行證書校驗。
在request上設(shè)置:
<?php
use AlibabaCloud\Client\AlibabaCloud;
$request = AlibabaCloud::rpc()
->product('Sts')
->version('2015-04-01')
->action('GenerateSessionAccessKey')
->host('sts.ap-northeast-1.aliyuncs.com');
// 在操作系統(tǒng)中尋找
$request->verify(true);
// 使用指定的文件
$request->verify(['verify' => '/path/to/cert.pem']);
// 使用指定的文件和密碼
$request->verify(['verify' => ['/path/to/cert.pem','password']]);
2. 在client上設(shè)置:
<?php
use AlibabaCloud\Client\AlibabaCloud;
// 在操作系統(tǒng)中尋找
AlibabaCloud::getDefaultClient()
->verify(true)
->asDefaultClient();
// 使用指定的文件
AlibabaCloud::getDefaultClient()
->verify(['verify' => '/path/to/cert.pem'])
->asDefaultClient();
// 使用指定的文件和密碼
AlibabaCloud::getDefaultClient()
->verify(['/path/to/cert.pem','password'])
->asDefaultClient();
文檔內(nèi)容是否對您有幫助?