運営上でSSL証明書の設定が必要になる場合がありますが、既にELBを利用している場合を想定して、設定方法を書いてみたいと思います。
ELBを既に利用している時は、iamコマンドとAWS SDK for PHPで設定を行います。
下記は、前提条件とします。
- SSL証明書取得済み
- iamコマンド AWS SDK for PHP利用環境構築済み
まずは、証明書のアップロードです。
アップロードは、iam-servercertuploadコマンドを利用します。
iam-servercertupload -c 中間証明書 -b SSL証明書 -k 秘密鍵 -s コモンネーム --aws-credential-file credentials.txt
証明書のアップロード確認は、iam-servercertlistbypath または、iam-servercertgetattributesコマンドを利用します。
iam-servercertlistbypath --aws-credential-file credentials.txt iam-servercertgetattributes -s コモンネーム --aws-credential-file credentials.txt
そして、credentials.txtの中身は下記のようになります。
[credentials.txt]
AWSAccessKeyId=AAAAAAAA
AWSSecretKey=SSSSSSSS
次にSSL証明書の登録になりますが、下記のようなphpを実行します。
(東京リージョンのELBに設定とします。)
require_once("sdk.class.php"); $elb = new AmazonELB(); $elb->set_region(AmazonELB::REGION_APAC_NE1); $response = $elb->create_load_balancer_listeners("ロードバランサー名", array( array( "Protocol" => "HTTPS", "LoadBalancerPort" => 443, "InstancePort" => 80, "SSLCertificateId" => "arn:aws:iam::xxxxxxxxxxx:server-certificate/コモンネーム" ) )); var_dump($response); ?>
上記で、ELBへSSL証明書の設定ができました。