以前 AWS SDK for PHP をS3で使ってみましたが、今回はELBに証明書をインストールしてみました。

利用するサービスはIAMとELBになります。

IAM: サーバ証明書の登録
ELB: サーバ証明書のインストール

実際のコードは下記のようになります。

upload_server_certificate("php-test", $crt, $key, array(
 "Path" => "/mycerts/" // ARNのパス
));

// サーバ証明書(php-test)情報の取得
// この情報からARNが
// arn:aws:iam::000000000000:server-certificate/mycerts/php-test
// であることがわかります
$response = $iam->get_server_certificate("php-test");

// ELBサービスの作成
$elb = new AmazonELB();

// リージョンの設定
$response = $elb->set_region(AmazonELB::REGION_APAC_SE1);

// リスナーの削除
$response = $elb->delete_load_balancer_listeners("test-lb", array(443));

// リスナーの作成
$response = $elb->create_load_balancer_listeners("test-lb", array(
 array(
  "Protocol" => "HTTPS",
  "LoadBalancerPort" => 443,
  "InstancePort" => 80,
  "SSLCertificateId" => "arn:aws:iam::000000000000:server-certificate/mycerts/php-test"
 )
));

// 証明書の更新
$response = $elb->set_load_balancer_listener_ssl_certificate(
 "test-lb",
 443,
 "arn:aws:iam::000000000000:server-certificate/mycerts/php-test"
);