先日 RSA の SSL 自己証明書を作成して AWS の Application Load Balancer へ適用する方法を書きました。
同様に ECDSA を利用した SSL 自己証明書の作成方法も調べたので、こちらも備忘録として作成方法を書いておきたいと思います。
自己証明書の作成方法
以下のコマンドで秘密鍵を作成します。調べたときによく見かけた prime256v1 を使っています。
Private Key1 2 | $ openssl ecparam -name prime256v1 -out server.key -genkey
$ openssl ec - in server.key -text -noout
|
次に、以下のコマンドで公開鍵を作成します。後で使う ALB を東京リージョンで作成すると、現時点では「*.ap-northeast-1.elb.amazonaws.com」のドメインになるので、Common Name にはそのように設定しています。
Public Key1 2 3 4 5 6 7 8 9 10 11 12 13 | $ openssl req -new -key server.key -out server.csr
...
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyo
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:zuqqhi2
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname ) []:*.ap-northeast-1.elb.amazonaws.com
Email Address []:
...
A challenge password []:
An optional company name []:
$ openssl req -text -noout - in server.csr
|
最後に、以下のコマンドで証明書を作成します。
Self Signed Certificate1 2 | $ openssl x509 - in server.csr -days 365 -req -signkey server.key -out server.crt
$ openssl x509 -text -noout - in server.crt
|
これで SSL 自己証明書の作成は完了です。
AWS ALB への作成した SSL 自己証明書の設定
基本的には冒頭で紹介した以前の記事と同じですが、現在の ACM では ECDSA の SSL 証明書はインポートできないので、ALB の HTTPS リスナー作成時に「IAM に証明書をアップロードする」を選択してインポートしてください。
また、プライベートキーを入力する際には「BEGIN PARAMETERS」から「END EC PARAMETERS」はコピーしないようにしてください。
ALB を RSA と ECDSA の両方の暗号スイートに対応させるには、証明書を 2 つ設定する必要があります。
以下のブログを参考に設定したらできました。
Connection Test1 2 3 4 5 6 7 | $ openssl s_client -connect elb-ecdsa- test -1-109828406.ap-northeast-1.elb.amazonaws.com:443 -servername elb-ecdsa- test -1-109828406.ap-northeast-1.elb.amazonaws.com -cipher ECDHE-ECDSA-AES128-GCM-SHA256 < /dev/null | grep "Cipher"
New, TLSv1 /SSLv3 , Cipher is ECDHE-ECDSA-AES128-GCM-SHA256
Cipher : ECDHE-ECDSA-AES128-GCM-SHA256
$ openssl s_client -connect elb-ecdsa- test -1-109828406.ap-northeast-1.elb.amazonaws.com:443 -servername elb-ecdsa- test -1-109828406.ap-northeast-1.elb.amazonaws.com -cipher ECDHE-RSA-AES128-GCM-SHA256 < /dev/null | grep "Cipher"
New, TLSv1 /SSLv3 , Cipher is ECDHE-RSA-AES128-GCM-SHA256
Cipher : ECDHE-RSA-AES128-GCM-SHA256
|
この記事へのコメントはありません。