タグ : SSL

StartSSL が Opera に対応してた

最近、StartSSLのサイトをチェックしていなかったので気付くのが遅くなったのですが、Opera の最新版にルート証明書が組み込まれており、これで主要なブラウザにすべて対応を果たしたことになります。携帯に対応する必要のないサイトなら、StartSSLも十分検討の対象となりますね。BlackBerryにも対応してくれたらスマートフォンでも問題がなくなるのですが。:)

StartSSL (3/3)

さて、SSL証明書の請求です。個人認証を受けていない場合は、

  • サーバー証明書 (1ドメイン。有効期間1年間)
  • クライアント/メールアドレス証明書 (有効期間1年間)

個人認証、企業認証を受けている場合は、

  • サーバー証明書 (複数ドメイン、ワイルドカード可。個人/企業実在証明付き。有効期間2年間)
  • クライアント/メールアドレス証明書 (個人/企業実在証明付き。有効期間2年間)
  • コードサイン証明書 (個人/企業実在証明付き。有効期間2年間)

が請求できます。それでは、ごく一般的なサーバー証明書を例にとって請求方法を説明しましょう。

まず、ドメインの認証を行います。アカウントページの「Validation Wizard」をクリックして、「Type:」から「Domain Validation」を選択して、「Continue」をクリックします。

ドメイン認証開始画面

次に認証を受けるドメイン名を入力します。トップレベルドメインはドロップダウンメニューから選択するようになってます。「.jp」「.co.jp」「ne.jp」などもちゃんとありますので、焦らずに探しましょう。:) 入力したら、「Continue」をクリックします。

ドメイン名入力画面

認証コードを受信するメールアドレスを選択します。「postmaster@*」「hostmaster@*」「webmaster@*」は認証を受けるドメインのアドレスになります。それ以外に、Whois データベースに記載されている連絡アドレスが表示されます (註: .jp ドメインの場合、whois データベースの読み出しに失敗しているようで、文字化けした意味不明の選択肢が表示されます。ですので、事実上、ドメインメール宛の先の三つのアドレスからしか選べません)。選択したら「Continue」をクリックします。

メールアドレス選択画面

指定したアドレスへ認証コードを記載した次のようなメールが届きます。

認証コードメール

認証コードを入力して「Continue」をクリックします。

認証コード入力画面

これでドメイン認証は完了です。以下のような画面に進みますので、「Finish」をクリックします。

ドメイン認証完了画面

完了後、画面右にある「Domain Validation」の「+」をクリックすると、認証されたドメイン名に緑色のチェックマークが付いているのが確認できます。

認証済みドメイン名確認

なお、個人認証を受けていないと、ドメイン認証の有効期間は30日で、30日ごとに認証を繰り返さなくてはなりません。

次に、証明書の発行請求を行います。アカウントページの「Certificates Wizard」をクリックします。

「Certificate Type:」で「Web Server SSL/TLS Certificate」をドロップダウンメニューから選択し、「Continue」をクリックします。

証明書種類選択画面

秘密鍵の作成画面になります。既に秘密鍵を手元で生成済みの場合は、「Skip」をクリックします。ここで秘密鍵を作成する場合は、パスワードを入力し、鍵長を「2048 (Medium)」「4096 (High)」のいずれかから選択して「Continue」をクリックします。パスワードを忘れるとサーバーが暗号化できなくなったり、証明書の更新に必要な CSR (証明書署名要求) を作成できなくなってしまいますので、忘れないように気をつけて下さい。また、鍵長は「2048」でも問題ありませんが、よりセキュリティを高めたいと思われるのでしたら「4096」を選びます。

秘密鍵作成画面

秘密鍵を作成するならここで確認を求められますので、「OK」をクリックします。

秘密鍵作成確認ダイアログ

少し時間がかかりますが、秘密鍵が作成され、次の画面に進みます。画面中央のテキストエリアに表示されている内容を一切の変更を加えないように注意してコピーし、テキストエディタなどにペーストしてファイルに保存します。この秘密鍵は暗号化されており、実際にサーバーにインストールして運用する際に、秘密鍵を作成した時に入力したパスワードが必要になります。ただ、通常はサーバーの起動ごとにパスワードを入力するのは面倒なので、暗号化を解除した秘密鍵をインストールすることも少なくありません。もちろん、秘密鍵の暗号化を解除する際にもパスワードが必要です。

秘密鍵表示画面

秘密鍵を保存したら、「Continue」をクリックして次の画面に進みます。証明書を作成する認証済みドメインを選択して、「Continue」をクリックします。

証明書作成ドメイン選択画面

証明書が必要なサーバーのサブドメインを入力します。サブドメインのないドメイン名だけの証明も自動的に加えられますので、特にサブドメインが必要でなくても何か指定しておきます。入力したら「Continue」をクリックします。

サブドメイン指定画面

証明書に含まれるサーバー名の確認画面が表示されます。サブドメインのないサーバー名も証明書に含まれることがわかります。間違いがなければ、「Continue」をクリックします。

サーバー名確認画面

個人認証・企業認証済みであれば、すぐに証明書が表示されますが、そうでなければ、次のような画面が表示されます。

証明書作成完了画面

要は「内容を確認するからメールで知らせるまでちょっと待て」ということです。ほとんどの場合、三時間以内に次のようなメールが来ます。

証明書承認通知メール

メールが届いたら、アカウントページの「Tool Box」をクリックし、左側に表示される「Retrieve Certificate」をクリックします。すると次のような画面に進みますので、証明書を作成したサーバーを選択して「Continue」をクリックします。

証明書選択画面

中央のテキストエリアに表示されているのが証明書です。内容を一切の変更を加えないように注意してコピーし、テキストエディタなどにペーストしてファイルに保存します。

証明書表示画面

あとは秘密鍵と一緒にサーバーへインストールするだけです。お疲れ様でした!

StartSSL (2/3)

さて、アカウントが開設されたので、個人認証を申し込むこととします。個人認証には、以下のものが必要です。

  1. 最近の写真がある公的機関の証明書を二種類
  2. 支払いのためのクレジットカード (Visa, MasterCard, American Express) または Paypal アカウント

写真がある公的機関の証明書といえば、代表的なものはパスポートと運転免許証、あるいは写真付き住基カードでしょうか。運転免許証と健康保険証でも認証してもらえた例もあるようなので、二種類とも絶対に写真が必要というわけでもないようです。「免許証とか日本語だけど大丈夫なの?」と思われるかもしれませんが、大丈夫です。

私はパスポートと運転免許証で認証してもらいました。その場合は、以下のものを用意します。なお、画像の大きさは 800×600 以下で、かつサイズも 1MB 以下でなくてはなりません。画像のフォーマットは、一般的なフォーマット (PDF, PNG, JPEGなど) で問題はありません。

  • パスポートの表紙をスキャンまたはデジカメで撮影した画像
  • パスポートの最初のページをスキャンまたはデジカメで撮影した画像
  • パスポートの顔写真が掲載されているページをスキャンまたはデジカメで撮影した画像
  • 運転免許証の表および裏をスキャンまたはデジカメで撮影した画像

準備ができたら、まず支払い方法 (クレジットカードまたは Paypal アカウント) を登録します。StartSSL のアカウントページにログインして、「Tool Box」と書かれたタブをクリックします。すると左側にメニューが表示されますので、その中の「Add Credit Card」をクリックします。

すると、カード情報を入力する画面に進みますので、クレジットカードの場合はカード種別を「Visa, MasterCard, American Express」のいずれかから選択してカード情報を入力します。Paypal 払いの場合は、カード番号の欄に Paypal アカウントのメールアドレスを入力し、後は空欄のままにします。入力したら「Continue」をクリックします。

無事登録できれば以下のような画面が表示されます。これで支払い方法の登録は完了です。

さて、ここからが本番。個人認証の請求です。StartSSL のアカウントページの「Validation Wizard」と書かれたタブをクリックします。

中央の「Type:」欄のドロップダウンメニューから「Personal Identity Validation」を選択して「Continue」をクリックします。

必要な資料と費用に関する注意書きが表示されます。内容をよく確認して「Continue」をクリックします。

次に認証レベルの選択画面が表示されます。「Personal Class 2 (Basic)」となっていることを確認して「Continue」をクリックします。なお、選択肢には「Personal Class 3 (Reserved)」もありますが、これは StartCom の従業員や出資者、ビジネスパートナーなどに行われる特別な認証なので、選択してはいけません

次に資料画像のアップロード画面に進みますので、用意してあった画像をここですべてアップロードします。「選択」ボタンをクリックして画像ファイルを選択すると自動的にアップロードされます。すべてのファイルをアップロードするまで「Continue」をクリックしてはいけません。

すべての画像をアップロードしたら、「Continue」をクリックします。これで完了…と言いたいところですが、実はこれで終わりではありません。イスラエルの現地時間にもよりますが、早ければ数分以内に遅くても数時間以内に担当者から電話がかかってきます。認証を申し込んだのは本当に本人か、認証内容に間違いはないかなど簡単な質問ですので、それほど時間はかかりません。私の場合は、実は最初電話が繋がらないというメールが届いて、続けて、電話を契約している証拠として最新の請求書 (のスキャン画像) を送付するようメールが届きました。もちろん送ったのですが、どうやらかけ間違いであったらしく、それから30分ほどしてから電話がありました。

電話があってほどなく費用の請求メールが届き、私は支払いを Paypal にしていたので、Paypal からも請求メールが届いたのでそれで支払いをしました。支払い後、15分ほどで領収メールが届き、それからさらに五分後に認証完了メールが届きました。

アカウントページ右側の「Identity Card」の「+」記号をクリックすると認証内容が確認できます。こんな感じです。

企業認証も手順は同じです。違いは「Validation Type」で「Organization Validation (Requires Personal Identity)」を選択するくらいです。また、用意する資料は、

  1. 登記証明書 (日本の場合ですと登記事項全部証明書になります)
  2. 登録商標があれば、その登録証 (なくても構いません)
  3. オーナー、株主、取締役、最高経営責任者の名前が証明できる資料
  4. 組織名で証明書を申請することを許可する書類 (取締役か最高経営責任者のサインが必要。書式は、StartCom からダウンロードできます)

です。ただし企業認証を請求する人はあらかじめ個人認証をすませておかなくてはなりません。

StartSSL (1/3)

StartCom Linux というディストリビューションも開発しているイスラエルの StartCom が認証局として発行している証明書が、StartSSL 証明書です。昨年秋に Windows の証明書ストアにルート証明書が登録されたことにより、Internet Explore にも対応を果たしました。

通常、SSL証明書というのは、発行申請ごとに認証を受けるのですが、StartCom は、証明書の発行プロセスと認証プロセスを完全に分離し、個人認証、組織認証について課金するというモデルをとっています。個人認証が、350日で $49.90-。組織認証も 350日で $49.90- (ただし、組織認証を受けるためには代表者または担当者が個人認証を受けている必要があります)。EV 認証は、やはり 350日で、$199.90 (組織認証とEV証明書1回分を含みます)。一度認証をうければ、その間、証明書はワイルドカード証明書を含めて発行し放題です (EV証明書だけは一回につき $49.90 必要です)。ここ以外では一番安いと思われる RapidSSL のワイルドカード証明書でも、年 $149 (日本だと年14800円) することを思えば、これは破格の安さではないでしょうか。しかも証明書は二年間有効です。

認証? またそれは面倒な。と思ったあなた。大丈夫です。もし、SSL証明書が必要なドメインがひとつだけでしたら、認証は必要ありません。しかも認証が必要ないということは課金がありませんから、つまりタダで SSL証明書が入手できます。この場合、証明書の有効期間は一年間になります。

さて、安いとか無料ということになると、気になるのはブラウザの対応具合ですが、基本的に、Windows の証明書ストア、Mac のキーチェーンを使用するブラウザは問題ありません。具体的には、Internet Explore とか、Safari とか。Firefox は独自の証明書ストアを持っていますが、既に登録されているのでこれまた問題ありません。ブラウザ別に見ると、

となります。何か抜けてますね。そうなんです。Opera は対応してないんですよ。となると、Opera 自体のシェアはともかく、広く公開するサイトには二の足を踏んでしまう人も少なくないのではないでしょうか。でもまあ、ある程度対象が限定 (知人親族だけが対象とか) されるサイトなら、問い合わせがあるのを前提で使用してみる価値はあると思います。あるいは、Opera は無視、というポリシーでいくとか。いつの間にやら Opera に対応して隙がなくなってますね。(2010/10/6 修正) ^^;

では、実際の請求方法をご説明しましょう。実は「Quick Lane」という、 SSL証明書を手早く発行して貰うためのショートカットプロセスもあるのですが、どっちにしてもアカウントは作成されることと、個人認証まで行う場合はそれではだめなので、ここでは通常の登録方法を紹介することとします。

まず、アカウントを開設するために、StartSSLホームページを表示します。

次に、「Sign-up」をクリックします。すると、下図のような画面になりますので、必要事項を入力します。嘘を入力したことがわかるとアカウントは抹消されるので、正直に。イスラエルの怪しげな会社に個人情報を渡せるかいっ! という方はここで Uターン。信用できない会社の認証を受けても仕方ないでしょ?

すると次のような確認ダイアログが表示されます。

「登録を進めたければ以下の点を確認すること」「個人の私的な情報として正しく嘘のない情報を入力しました」「StartCom CA ポリシーで要約されている申込者の義務を遵守します」と表示されていますので、申し込むのであれば、OK をクリックします。

すると、以下の申し込み認証コード入力画面になります。認証コードはメールで届きますので、認証コードを入力して「Continue」をクリックします。

認証コードを記載したメールは以下のようなものです。

これで終わり? いえいえ。まだ申し込みが終わっただけで、アカウントが認証されていません。早ければ数分で、次のような「アカウントを認証したよ」というメールが届きます。

申し込みの後以下のような画面になっているので、上のメールに書かれている認証コードを入力するか、もしくはメール中の URL をクリックします。

続けてクライアント証明書作成画面に進みます。「2048(高)」が選択されているのを確認して「Continue」をクリックします。

すると次の証明書インストール画面に進みます。そのまま「Install」をクリックします。

以下のように完了画面が表示されれば、クライアント証明書のインストールは完了です。と言いたいところですが、ブラウザによってはクライアント証明書がダウンロードされるだけでインストールされません。そこで、ダウンロードされた証明書をダブルクリックして証明書ストア (Mac ならキーチェーン) に証明書をインストールします。

証明書をインストールしたら、「Finish」をクリックします。ちゃんと証明書がインストールされていれば、以下のメールが届き、無事アカウントが開設されたことがわかります。

SSLでネームベースのバーチャルホスト

某所にある Apache WebサーバのSSLモジュールをOpenSSLから、GnuTLSへ変更しました。何のためにそんなことをしたかというと、タイトル通り、SSLでNamed Virtual Hostを有効にするためです。

 

そんなことできんの? SSLってIP1個につき、1ホストじゃないとできないんじゃないの? と思ったあなた、そんなことはありません。知ってるよ。ワイルドカード証明書でしょ? でもあれ高いんだよね−。と思ったあなた。違います。ワイルドカード証明書のことではありません。IPアドレス1個で、全く関係のないドメインがバーチャルホストできるんです。え? 知ってる? おまえが遅れてるだけ? すいません。最近、サーバ関係は手を抜いてるもんで。^^;

 

そもそも私がこれを知るきっかけになったのは、Postfix メーリングリストにドメイン名の変更に当たり、二つのドメインを同時にSSLで受け付けられないかという質問が投げられたことにありました。で、その回答中に、複数のドメインをひとつの証明書にいれてもらう = subjectAltName を使用するというのがあったんです。

 

subjectAltName? そんな属性がSSLにあるんかいな、とググったところ、SSL・サーバ証明書の発行と認証 CSPSSLというページを発見。おおーっ。確かにある。で、さらにググったところ、まっちゃ139というサイトで勉強会に使用したというプレゼンページを発見。凄いわかりやすくて勉強になりました。ありがとうございます。>まっちゃ139さん

 

詳しくはそちらをご覧頂くとして、SSLでもNamed Virtual Host が可能。ちゃんとRFCにもなってて、ワイルドカード証明書よりスジがいいってこともわかりました。そういえば、GoDaddy でも、Multiple Domains SSL売ってたなぁ、あれもこれ使ってるんだとか思ったり。:P

 

ですが、subjectAltName では、それ用のSSL証明書が当然のことながら必要です。これが悩ましい。というのも、実は私、SSL証明書を四通持ってるんです。うち、二通はしまいっぱなし。いや、以前は使ってたんですが、IPアドレスをいくつも持ってるのが経済的に厳しくなって、サーバを解約しちゃったものですから、余ってたんですね。もったいない。そこへIP増やさなくてもSSLで使えるかもってんですから飛びついたんです。でもまあsubjectAltNameはそういうものでした。しかし! 天は我を見放さなかったのです! (大袈裟)

 

SNI (Server Name Indication) であれば、証明書を無駄にせずにすむ! IE6は対応してないみたいだけど、今時そんなブラウザ使ってるやつぁ無視! マイナーどころのブラウザについては、RFC追っかけてちゃんと作ってれば動く! 動かないのは使ってるやつの運が悪いだけ! (笑) というわけで、この方法でいってみようと決心したわけです。

 

ところがどうも、Apache 標準の mod_ssl は、パッチを当てないといかんらしい。ディストリビューションに取り込まれてないパッチはちょっと当てたくないなぁと思い、その必要がない、GnuTLS + mod_gnutls でいくことに決めたわけです。mod_gnutlsは、セキュリティホールが去年報告されたようなのですが、最新版ではちゃんと対応されてるので、問題なしと判定。ビルドしてインストールしました。サンプルについてた設定ファイルのキーワードが間違ってて、小一時間悩みましたけど、無事起動。そして、手持ちのSSL証明書を全部インストールして、Apache を再起動。おそるおそるそれぞれにアクセスしてみると…

 

やったよ! うまくいったよ! (当たり前)

Safai対応してるって書いてるサイト、あんまりなかったけど、普通に見えるよ! 

 

ということで、どうやったかを書くと tips として役に立つと思うんですが、なんせセキュリティがらみなもんで、具体例はちょっと…インストールの手順はまた後日ってことで。

 

Twitter links powered by Tweet This v1.8.3, a WordPress plugin for Twitter.