StarterSSLを買うてみる

投稿日:

自鯖(「このサーバ」ではない、他のサーバ)とSSLで通信すると、毎回毎回

このサイトと取り交わす情報は、ほかの人から読み取られたり変更されることはありません。しかし、このサイトのセキュリティ証明書には問題があります。
このセキュリティ証明書は、信頼する会社から発行されていません。証明書を表示して、この証明機関を信頼するかどうか決定してください。

↑こんなダイアログがポップアップして面倒です。

要するに「サーバ証明書が信頼する会社(「ルート証明機関」と言うらしい)から発行されてないこと」が問題なんですが、この「証明書」を「信頼する会社」、例えば日本ベリサインから取得しようと思うと8万円以上/年とかになってしまい…(^^;;

ところが先日、FreeSSL.jp

StarterSSL 証明書は128ビート(ビート?:^^;)の シングルルート SSL 証明書です。 FreeSSL.comはStarterSSLを発行するのに必要な自主的なルートを保有していて安定的な証明書を発行できます。StarterSSLはすでにエクスプローラ 5.01+、ネットスケープ 7とMobilla1 ブラウザーに搭載されています。1年間の証明書費用は17.00ドルだけなのでStarterSSLは現在利用できる最も経済的な SSL 証明書です。

↑こんなのを見つけました。17ドル/年程度(ちなみにこちらでは19ドル。びみょーな差ですが(^^;))なら金額知れてるので、一度コレを取得して試してみることにします。(要クレジットカード。1ヶ月限定の体験版は無料)

まず

# openssl genrsa -des3 -out temp.key 1024

とやってパスフレーズを使った「鍵」を作成し、この「鍵」を使ってCSR(Certificate Signing Request。サーバ証明書を発行するための署名要求。証明機関はこのCSRを「証明」する)を作成します。

# openssl req -new -key temp.key -out temp.csr
Using configuration from /usr/share/ssl/openssl.cnf
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) [GB]:JP
State or Province Name (full name) [Berkshire]:Ehime
Locality Name (eg, city) [Newbury]:Matsuyama
Organization Name (eg, company) [My Company Ltd]:My Group
Organizational Unit Name (eg, section) []:.
Common Name (eg, your name or your server's hostname) []:mydomain.net
Email Address []:mail@mydomain.net

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

国/県/市、ドメインを所有する団体名(たぶんwhoisに登録したOrganization Nameと揃えといた方がいいと思う)、そして「証明したいドメイン名」と連絡用メールアドレスを入力します。要らんトコロ(部署名とか)は、空欄にするため「.」を入力。

出来たCSRを、申し込みページのCertificate Signing Requestに貼っつけてSUBMITすると、CSRの内容を読み取って

サーバーURLの確認 生成されたCSRは次のURLで使われます:

https://mydomain.net

Common Name: mydomain.net
Organization: My Group
Organizational Unit:
Locality: Matsuyama
State: Ehime
Country: JP
Web Server Type: Other

↑こんな確認が出ます。登録内容が合ってるか確認して「Continue」をクリックすると支払い手続きになります。

ワタシゃクレジットカード番号の「チェックデジット」ってのを知らなかったんで、ここでちょっと手間取りました。カードの裏に書いてある番号のことなんですね。クレジットカードってあんま使ったことなかったんで、初めて知ったっす(^^;;

書いてある説明によると支払いの入力が終わればそのまま認証に入る“らしー”んすけど、ワタシが手続きしたときは、ココで止まりました。翌日に「手続きが途中で止まってるよ?」というメールが来てようやく手続きが再開出来た次第。

もし、お客様が注文番号:******、ドメイン:mydmain.net で注文されたStarterSSL証明書の電話番号認証プロセスをすでに完了されていましたら、このメールは削除していただいて結構です。

このメールは、直ちに電話番号認証を受ける事が出来ないお客様やそのプロセス中でエラーが発生したお客様をガイドする為に送られます。

エラー…なのかなぁ?(^_^;)

よく解りませんが、指定されたURLにアクセスすると「受けられる電話番号を入れろ」というフォームなので、「Japan」「japanese」を指定して携帯電話の番号を入れ、Submitすると携帯電話に電話が掛かって来ます。

電話に言われるとおり、#と画面に出る認証番号を携帯電話に入力し、最後に自分の名前を録音すれば手続き完了。殆ど即時に

全ての手続きが完了致しました。
お客様のウェブサーバー証明書です。

というメールが来ますので、この

-----BEGIN CERTIFICATE-----

から

-----END CERTIFICATE-----

までを、CRT(Web Server Certificate)として/etc/httpd/conf/ssl.crt/temp.crtとして保存。

このまま「鍵」を使うと再起動のたびにパスフレーズを要求されてうざったいので、「鍵」からパスフレーズを抜きます(セキュリティ的に好ましくないので推奨はしません)

# openssl rsa -in temp.key -out /etc/httpd/conf/ssl.key/temp.key

ここまで準備出来たら、httpd.confを

SSLCertificateKeyFile /etc/httpd/conf/ssl.key/temp.key

SSLCertificateFile /etc/httpd/conf/ssl.crt/temp.crt

と書き直してApacheを再起動すれば出来上がり。

https://mydomain.net

としても、証明書がどーのこーのと聞いて来ません(^_^)