herokuにて独自ドメインのアプリでSNI SSLを使う(その2)

herokuでSNI SSLアドオンを追加し、証明書の登録までやってみました。手順をのせておきます。
鍵長を2048ビットにしたり、擬似乱数ファイルを使ったりなどは必要に応じてどうぞ。

やったことは以下の通りです。

  1. 秘密鍵の生成
  2. CSRの生成
  3. パスフレーズを除去した秘密鍵の生成
  4. herokuへ証明書を登録

実際にはこの他に、SSLアドオンの追加も必要ですが、私はWeb経由でやってしまいっていたので割愛。

bash-3.2$ openssl genrsa -des3 -out example.com.key 1024
Generating RSA private key, 1024 bit long modulus
Enter pass phrase for example.com.key:
Verifying - Enter pass phrase for example.com.key:

bash-3.2$ openssl req -new -key example.com.key -out example.com.key.csr
Enter pass phrase for example.com.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kanagawa
Locality Name (eg, city) []:Yokohama
Organization Name (eg, company) [Internet Widgits Pty Ltd]:example
Organizational Unit Name (eg, section) []:example
Common Name (eg, YOUR name) []:example.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

bash-3.2$ openssl rsa -in example.com.key -out example.com.nopassword.key
Enter pass phrase for example.com.key:
writing RSA key

bash-3.2$ heroku ssl:add example.com.crt example.com.nopassword.key --app example
Added certificate to example.com, expiring in 2013/02/03 05:02:47 -0800

関連する記事:

2012年シーズン横浜FC試合日程

Yokohama FC

今年も横浜FC試合日程のGoogle Calendaを作成しました。
カレンダー右下の[+Googleカレンダー]ボタンをクリックすると、自分のカレンダーへ追加できます。
よろしければご利用ください。

以下、来年の自分に向けたメモ。
Google Calendar向けのCSVは1行目にタイトルを記述する。

Subject,Start Date,Start Time,Location

関連する記事:

herokuにて独自ドメインのアプリでSSLを使う(SNI SSL)

herokuでSSLを使う場合、以下の4つのプランがあります。

  1. Piggyback SSL (無料)
  2. SNI SSL ($5/月)
  3. Hostname Based SSL ($20/月)
  4. IP Based Custom SSL ($100/月)

herokuで動かすアプリケーションが、heroku.comドメインで良い場合はPiggyback SSLを使うことができますが、独自ドメインでSSLを使う場合、他のプランを選択する必要があります。今回は最も安価なSNI SSLについて調べてみました。

そもそも、SNIとは何か?ですが、http://www.ssl-secure.jp/faq.html#about_sniによると、

SNI拡張は、「名前ベースのバーチャルホスト」で複数のSSL環境を利用出来るようにする技術です。

従来、バーチャルホスト環境でSSLを利用するには「IPベースのバーチャルホスト」でなければなりませんでした。そのため、SSLを利用したいバーチャルホスト毎に独立したIPアドレスを割り当てる必要がありました。

SNI拡張では、1個のIPアドレスを複数のSSLサイトで共有できます。このためIPアドレスの節約やコスト削減につながります。

とのことです。つまり、独立したIPアドレスでなくてもSSLを利用できるということですね。

ただし、SNIを利用するためには、サーバとクライアントの双方で対応している必要があるとのこと。サーバに関しては、heroku側で対応しているので、問題はクライアントですね。

Server Name Indicationによると、サポートしているブラウザは以下の通り。

  • Internet Explorer 7以上(Windowsの場合にはVista以上。Windows XPでは未サポート)
  • Mozilla Firefox 2.0以上
  • Opera 8.0以上 (TLS 1.1を有効にする必要あり)
  • Opera Mobile 10.1 beta以上(Android)
  • Google Chrome (Windowsの場合にはVista以上。Windows XPの場合にはChrome 6以上、Macの場合にはOS X 10.5.7以上でChrome 5.0.342.1 以上)
  • Safari 2.1以上(Macの場合はOS X 10.5.6以上、Windowsの場合はVista以上)
  • Konqueror/KDE 4.7以上
  • MobileSafari (iOS 4.0以上)
  • Androiddefuxデフォルトブラウザ(Honeycomb以上)
  • Windows Phone 7(citation必要)
  • MicroB(Maemo)

ということで、開発中のサービス的には問題なさそう。とりあえず試してみて、何かあればまた書きます。

関連する記事: