2011年2月23日水曜日

"AWS SDK for PHP"でELBに証明書をインストール(SSL Termination)

スズキです。

下記で"AWS SDK for PHP"をS3で使ってみましたが、
http://blog.suz-lab.com/2011/02/aws-sdk-for-phps3.html
今回は、ELBに証明書をインストールしてみました。

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

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

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

--------【PHP】--------
<?php

// ライブラリの読み込み
require_once("./sdk.class.php");

// キーを用意
$key = <<<KEY
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
KEY;

// 証明書を用意
$crt = <<<CRT
-----BEGIN CERTIFICATE-----
...
----END CERTIFICATE-----
CRT;

// IAMサービスの作成
$iam = new AmazonIAM();

// サーバ証明書(php-test)の削除
$response = $iam->delete_server_certificate("php-test");

// サーバ証明書(php-test)の登録
$response = $iam->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"
);

?>
--------

あとはよろしく…
--------
http://www.suz-lab.com

0 コメント: