ECDSA の SSL 自己証明書の作成方法

先日 RSA の SSL 自己証明書を作成して AWS の Application Load Balancer へ適用する方法を書きました。
同様に ECDSA を利用した SSL 自己証明書の作成方法も調べたので、こちらも備忘録として作成方法を書いておきたいと思います。

自己証明書の作成方法

以下のコマンドで秘密鍵を作成します。調べたときによく見かけた prime256v1 を使っています。
$ openssl ecparam -name prime256v1 -out server.key -genkey
$ openssl ec -in server.key -text -noout 
次に、以下のコマンドで公開鍵を作成します。後で使う ALB を東京リージョンで作成すると、現時点では「*.ap-northeast-1.elb.amazonaws.com」のドメインになるので、Common Name にはそのように設定しています。
$ 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
最後に、以下のコマンドで証明書を作成します。
$ 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 つ設定する必要があります。 以下のブログを参考に設定したらできました。
ども、大瀧です。 先日、ALBに複数のSSL/TLS証明書を設定できるようになりました。設定方法は以下のブログを参照ください。 ALBで複数のSSL/TLS証明書を設定できるSNIに対応しました | Developers …
AWS ALBでRSA証明書とECDSA証明書の両方に対応する | Developers.IO - クラスメソッド発「やってみた」系技術メディア | Developers.IO
$ 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
zuqqhi2

某Web系の会社でエンジニアをやっています。 学術的なことに非常に興味があります。 趣味は楽器演奏、ジョギング、読書、料理などなど手広くやっています。