読者です 読者をやめる 読者になる 読者になる

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

Azure Web サイトで楕円曲線暗号(ECC)を使った SSL 証明書を試してみた

Azure Web サイトで SHA-256 の証明書が使えるのか確認した - しばやん雑記 は Azure 界の抱かれたい男 No.1 こと @kosmosebi に脅されて書きましたが、そういえば Azure Web サイトは楕円曲線暗号を使った SSL 証明書にも対応していたはずなので、自己署名証明書を作成して試してみました。

Next Generation Cryptography now available with Azure Web Sites | Microsoft Azure Blog

ちなみに Azure Blog では ECC に対応と記述されてますが、試したことある人は少ない気がします。

自己署名証明書の作成

基本的には Azure Web サイトのドキュメントに書いてあるような流れになります。serverauth.cnf だけはドキュメント通りに作成しておきます。

Enable HTTPS for an Azure website - .NET Dev Center

せっかくなので署名アルゴリズムとして SHA-256 を使うために、default_keyfile の下あたりに default_md = sha256 を追加しておきました。

作成が終わったら openssl コマンドを使って秘密鍵を作成し、serverauth.cnf の設定にしたがって server.crt を作成していきます。ひょっとしたら秘密鍵を一緒に作成する方法があるのかもしれないですが、わからなかったので別々に作成します。

openssl ecparam -name prime256v1 -genkey -out private.key
openssl req -new -config serverauth.cnf -x509 -key private.key -out server.crt -days 365

server.crt の作成中にはコモンネームなどを聞かれるので、間違えないように入力します。

作成した private.key と server.crt を使って PFX 形式に変換するには、以下のようなコマンドを使います。

openssl pkcs12 -export -out server.pfx -inkey private.key -in server.crt

途中でパスワードを聞かれるので、間違えないように入力します。これで server.pfx が作成されます。

あとは管理ポータルから前回と同じように設定するだけなので省略します。

証明書の確認

openssl を使うために OS X で作業していたので、OS X 上の Google Chrome で確認してみました。

f:id:shiba-yan:20141217234017p:plain

自己署名証明書ですが、ちゃんとアルゴリズムが楕円曲線公開鍵になっています。署名アルゴリズムも「SHA-256 を使用する ECDSA 署名」になっているので、楕円曲線暗号が使われていることがわかります。

Windows 上の Internet Explorer 11 でも確認してみました。

f:id:shiba-yan:20141217235944p:plain

公開キーが ECC の 256bits になっていることが確認できます。

正直まだまだ使われることは少ないと思いますが、新しい暗号化形式に対応しているのは安心感があります。