通过PHP创建AWS的CloudFront并绑定证书添加备用域名

如果你要做一个动态绑定域名到AWS服务器的功能,那一定会经历以下事情:

1、申请证书

2、创建源S3(静态)或者EC2 (去后台手动操作)

3、创建CloudFront

4、绑定证书到CloudFront

5、添加备用域名

如果是你自己给自己的服务器添加域名,那这些操作都可以在AWS后台手动操作。

但现在我公司有一个需求,是提供服务器,让用户自己注册域名,并把自己注册的域名通过我们提供的后台去绑定到我们的服务器上,当然不能让用户登录我们的AWS后台操作了。这就需要我们提供API接口去动态操作上面的1,3,4,5步骤了。

申请证书API操作前面的文章已经说过了。这里就说怎么通过PHP的SDK创建CloudFront,绑定证书,添加备用域名了。

复制代码
require 'vendor/autoload.php';
 
use Aws\CloudFront\CloudFrontClient;
use Aws\Exception\AwsException;
use Aws\Iam\IamClient;
use Aws\CertificateManager\CertificateManagerClient;
 
// 配置AWS SDK
$awsConfig = [
    'version' => 'latest',
    'region'  => 'us-east-1'
];
 
$cloudFrontClient = new CloudFrontClient($awsConfig);
$iamClient = new IamClient($awsConfig);
$certificateManagerClient = new CertificateManagerClient($awsConfig);
 
// 创建发行版
try {
    $result = $cloudFrontClient->createDistribution([]);
    $distributionId = $result['Distribution']['Id'];
    echo "创建发行版成功,ID: " . $distributionId . "\n";
} catch (AwsException $e) {
    echo "创建发行版失败:" . $e->getMessage() . "\n";
    exit();
}
 
// 绑定证书
try {
    $certificateResult = $certificateManagerClient->listCertificates();
    $certificateArn = $certificateResult['CertificateSummarys'][0]['CertificateArn'];
 
    $result = $cloudFrontClient->updateDistribution([]);
    echo "证书绑定成功。\n";
} catch (AwsException $e) {
    echo "证书绑定失败:" . $e->getMessage() . "\n";
    exit();
}
 
// 添加备用域名
try {
    $result = $cloudFrontClient->updateDistribution([]);
    echo "备用域名添加成功。\n";
} catch (AwsException $e) {
    echo "备用域名添加失败:" . $e->getMessage() . "\n";
    exit();
}
相关推荐
打工人1379号4 分钟前
2K3000常见问题合集
linux·运维·服务器
EveryPossible19 分钟前
什么是机器学习
服务器
minji...25 分钟前
Linux 进程信号(四)内核态&&用户态,sigaction,可重入函数,volatile,SIGCHLD信号
linux·运维·服务器
翼龙云_cloud31 分钟前
阿里云代理商:如何基于百炼模型数据构建企业级智能分析平台?
阿里云·大模型·云计算
lwx91485234 分钟前
Linux-parted命令
linux·运维·服务器
白露与泡影43 分钟前
从 BIO 到 epoll:高并发 I/O 模型演进与本质分析
java·服务器·数据库
麦田里的稻草人w1 小时前
【OpenClaw第一讲】介绍和安装
人工智能·ai·云计算
KOYUELEC光与电子努力加油1 小时前
BROADCOM博通集成 Matter 1.5平台认证就绪、BK7239N等芯片助力智能家居无缝融合
服务器·科技·单片机·智能家居
天草二十六_简村人1 小时前
阿里云的NAT和弹性公网IP,解决ECS机器访问外网的实现方案
运维·后端·网络协议·阿里云·云计算·ip
hzhsec1 小时前
钓鱼邮件分析与排查
服务器·前端·安全·web安全·钓鱼邮件