Topik ini menjelaskan cara mengonfigurasi permintaan HTTPS di Alibaba Cloud SDK V1.0 untuk PHP.
Konfigurasikan permintaan HTTPS
Anda dapat mengonfigurasi pengaturan untuk menonaktifkan verifikasi sertifikat atau mengatur konfigurasi HTTP lainnya di Guzzle. Untuk informasi lebih lanjut, lihat Opsi Permintaan.
Secara default, jika Anda mengirim permintaan API melalui HTTPS, SDK akan mengaktifkan verifikasi sertifikat untuk memvalidasi sertifikat SSL/TLS. Jika tidak ada sertifikat SSL/TLS yang dikonfigurasi di lingkungan pengembangan, kesalahan terkait kegagalan verifikasi sertifikat akan dilaporkan.
Untuk memastikan keamanan komunikasi jaringan, kami sarankan Anda mengaktifkan verifikasi sertifikat. Namun, jika verifikasi sertifikat harus dinonaktifkan dalam lingkungan pengujian, Anda dapat mengatur parameter verify menjadi false.
Panggilan spesifik
Anda dapat mengonfigurasi objek permintaan untuk mengirim permintaan API melalui HTTPS. Contoh kode:
<?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 {
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi.
AlibabaCloud::accessKeyClient(getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'));
$request = Ecs::v20140526()->describeRegions();
$result = $request
->scheme('https') // Tentukan protokol yang digunakan untuk mengirim permintaan API.
->verify(false) // Tentukan apakah akan mengaktifkan verifikasi sertifikat. Nilai false menunjukkan bahwa verifikasi sertifikat dinonaktifkan. Untuk memastikan keamanan komunikasi jaringan, kami sarankan Anda mengaktifkan verifikasi sertifikat.
->version('2014-05-26')
->product('Ecs')
->action('DescribeRegions')
->regionId('cn-hangzhou')
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}Panggilan umum
Anda dapat mengonfigurasi permintaan HTTPS untuk mengirim permintaan API dalam gaya panggilan prosedur jarak jauh (RPC). Contoh kode:
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
try {
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi.
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') // Tentukan protokol yang digunakan untuk mengirim permintaan API.
->verify(false) // Tentukan apakah akan mengaktifkan verifikasi sertifikat. Nilai false menunjukkan bahwa verifikasi sertifikat dinonaktifkan. Untuk memastikan keamanan komunikasi jaringan, kami sarankan Anda mengaktifkan verifikasi sertifikat.
->request();
print_r($result->toArray());
} catch (ClientException $exception) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
echo $exception->getMessage() . PHP_EOL;
} catch (ServerException $exception) {
// Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak hanya untuk referensi.
echo $exception->getMessage() . PHP_EOL;
echo $exception->getErrorCode() . PHP_EOL;
echo $exception->getRequestId() . PHP_EOL;
echo $exception->getErrorMessage() . PHP_EOL;
}Anda juga dapat mengonfigurasi permintaan HTTPS untuk mengirim permintaan API dalam gaya arsitektur berorientasi sumber daya (ROA). Contoh kode:
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Client\AlibabaCloud;
use AlibabaCloud\Client\Exception\ClientException;
use AlibabaCloud\Client\Exception\ServerException;
try {
// Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi.
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') // Tentukan protokol yang digunakan untuk mengirim permintaan API.
->verify(false) // Tentukan apakah akan mengaktifkan verifikasi sertifikat. Nilai false menunjukkan bahwa verifikasi sertifikat dinonaktifkan. Untuk memastikan keamanan komunikasi jaringan, kami sarankan Anda mengaktifkan verifikasi sertifikat.
->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;
}Tentukan sertifikat kustom
Untuk memastikan keamanan komunikasi jaringan, kami sarankan Anda mengirim permintaan API melalui HTTPS dan mengaktifkan verifikasi sertifikat. Anda dapat menggunakan salah satu metode berikut untuk melakukan verifikasi sertifikat di Alibaba Cloud SDK V1.0 untuk PHP.
Tentukan sertifikat untuk permintaan API:
<?php
use AlibabaCloud\Client\AlibabaCloud;
$request = AlibabaCloud::rpc()
->product('Sts')
->version('2015-04-01')
->action('GenerateSessionAccessKey')
->host('sts.ap-northeast-1.aliyuncs.com');
// Kueri sertifikat di sistem operasi.
$request->verify(true);
// Gunakan sertifikat yang ditentukan.
$request->verify(['verify' => '/path/to/cert.pem']);
// Gunakan sertifikat yang ditentukan dan kata sandi.
$request->verify(['verify' => ['/path/to/cert.pem','password']]);2. Tentukan sertifikat untuk klien:
<?php
use AlibabaCloud\Client\AlibabaCloud;
// Kueri sertifikat di sistem operasi.
AlibabaCloud::getDefaultClient()
->verify(true)
->asDefaultClient();
// Gunakan sertifikat yang ditentukan.
AlibabaCloud::getDefaultClient()
->verify(['verify' => '/path/to/cert.pem'])
->asDefaultClient();
// Gunakan sertifikat yang ditentukan dan kata sandi.
AlibabaCloud::getDefaultClient()
->verify(['/path/to/cert.pem','password'])
->asDefaultClient();