2011年10月31日月曜日

OpenSSLで自己署名証明書の作成

①自己署名証明書を作成する。


C:\Windows\system32>c:\OpenSSL-Win64\bin\openssl.exe req -new -days 365 -x509 -nodes -keyout c:\key.pem -out cert.pem
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key
......................................++++++
.........++++++
writing new private key to 'c:\key.pem'
-----
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.
-----
Organization Name (company) [My Company]:
Organizational Unit Name (department, division) []:
Email Address []:
Locality Name (city, district) [My Town]:
State or Province Name (full name) [State or Providence]:
Country Name (2 letter code) [US]:jp
Common Name (hostname, IP, or your name) []:hoge
C:\Windows\system32>


②自己署名証明書の内容を表示する。

C:\Windows\system32>c:\OpenSSL-Win64\bin\openssl.exe x509 -text -noout < cert.pem
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            d8:99:b3:23:53:be:b8:77
        Signature Algorithm: md5WithRSAEncryption
        Issuer: O=My Company, L=My Town, ST=State or Providence, C=jp, CN=hoge
        Validity
            Not Before: Oct 31 14:30:25 2011 GMT
            Not After : Oct 30 14:30:25 2012 GMT
        Subject: O=My Company, L=My Town, ST=State or Providence, C=jp, CN=hoge
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (1024 bit)
                Modulus:
                    00:c9:ae:5b:2f:1c:f7:50:29:4f:d6:3f:41:e8:8a:
                    30:27:f5:1e:b1:d6:6e:c5:a7:64:2b:54:00:c5:34:
                    e9:76:5f:15:9d:bb:7a:95:c6:51:70:64:64:2e:c7:
                    69:76:41:9d:83:d6:68:24:30:bb:2f:c9:86:8a:95:
                    75:ce:71:28:c8:bc:84:26:90:2f:21:65:ba:d8:9e:
                    49:d5:86:de:36:be:c3:02:e9:9a:37:19:35:59:02:
                    2a:fb:6e:e8:25:de:66:9e:72:8a:07:43:33:5d:b7:
                    c8:53:06:14:11:5a:83:39:56:34:76:82:15:d4:58:
                    26:2d:98:ef:8b:5f:13:ac:db
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:TRUE
            X509v3 Subject Key Identifier:
                2E:52:66:7C:4C:F3:7B:78:73:D0:56:6D:3D:FD:21:6B:4C:60:82:C4
            X509v3 Authority Key Identifier:
                keyid:2E:52:66:7C:4C:F3:7B:78:73:D0:56:6D:3D:FD:21:6B:4C:60:82:C4
                DirName:/O=My Company/L=My Town/ST=State or Providence/C=jp/CN=hoge
                serial:D8:99:B3:23:53:BE:B8:77
            X509v3 Key Usage:
                Digital Signature
    Signature Algorithm: md5WithRSAEncryption
        6d:ba:d6:c7:4d:14:fe:bb:f9:01:4f:f0:4d:ed:c0:33:f2:13:
        c9:be:b9:82:30:3f:b4:b1:b9:aa:2e:87:84:3b:2a:8c:a2:90:
        28:5a:20:20:ce:e4:90:94:df:bb:ca:69:f2:75:ac:f5:70:fe:
        28:7e:91:bd:91:f3:d1:9d:2f:b9:f4:f1:35:c1:a9:b5:71:ce:
        5c:35:33:7b:82:fa:c9:b5:e7:a4:23:6a:e8:c3:25:4b:1b:60:
        21:54:7e:72:e9:62:7d:f2:57:44:6a:76:f0:76:90:8e:0d:fe:
        62:33:ec:25:b2:08:1e:e2:26:94:33:ec:4d:c0:df:f1:3f:50:
        56:cf
C:\Windows\system32>


OpenSSL(Windows X64版) インストール

OpenSSLのインストール方法について説明する。
なお、OpenSSLをインストールする際には、「Microsoft Visual C++ 2008 再頒布可能パッケージ」が必要となるため、予めインストールしておく。

Microsoft Visual C++ 2008 再頒布可能パッケージのダウンロードURL
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=15336

①以下のURLからインストーラ(Win64 OpenSSL v1.0.0e Light)をダウンロードする。
http://www.slproweb.com/products/Win32OpenSSL.html

②ダウンロードしたexeをそのまま実行し、「次へ」ボタンを押していく。最後に、「完了」ボタンを押下する。

③openssl.confのパスを環境変数に設定する(OpenSSLのコマンドオプションにパスを指定する方法もある)
C:\Users\yasu>set OPENSSL_CONF=C:\OpenSSL-Win64\openssl.conf.txt

④以下のコマンドを実行し、バージョンが正しく表示されることを確認する。
C:\Users\yasu>C:\OpenSSL-Win64\bin\openssl.exe version
OpenSSL 1.0.0e 6 Sep 2011

2011年10月25日火曜日

undefined method `require_gem' for main:Objectが発生したときの対処

以下のエラーが発生した場合の対処方法について説明する。
この発生原因は、 rubygems の旧バージョン に存在した require_gem メソッドが新バージョン ではなくなってしまったためである。








(対処方法)
gemを以下のコマンドでupdateする。

C:\Users\yasu>gem update --system
C:\Users\yasu>gem pristine --all


(補足)
require_gem→gemに変わったようなので、以下のように修正する対処方法もありなのか。


require_gem  "ruby-openid", ">= 1.0.2"

gem  "ruby-openid", ">= 1.0.2"
require "openid"

DBとしてsqlite3を使用しようとして、no such file to load -- sqlite3と出た時の対処

以下のようなエラーが発生したときの対処方法について記載する。

rake aborted!
no such file to load -- sqlite3
Tasks: TOP => db:migrate
(See full trace by running task with --trace)


(対処方法)
gemコマンドを使用して、sqlite3をインストールする。



c:\ruby-openid\examples\rails_openid>gem install sqlite3
Successfully installed sqlite3-1.3.4-x86-mingw32
1 gem installed
Installing ri documentation for sqlite3-1.3.4-x86-mingw32...
Installing RDoc documentation for sqlite3-1.3.4-x86-mingw32...
c:\ruby-openid\examples\rails_openid>

2011年10月24日月曜日

Gemコマンドの使い方

  • インストール一覧の表示
c:\ruby-openid\examples\rails_openid>gem list
*** LOCAL GEMS ***
abstract (1.0.0)
actionmailer (3.1.1, 3.0.9, 2.3.8)
actionpack (3.1.1, 3.0.9, 2.3.8)
activemodel (3.1.1, 3.0.9)
activerecord (3.1.1, 3.0.9, 2.3.8)
activeresource (3.1.1, 3.0.9, 2.3.8)
activesupport (3.1.1, 3.0.9, 2.3.8)
arel (2.2.1, 2.0.10)
  • インストール
c:\ruby-openid\examples\rails_openid>gem install rails
  • アンインストール
c:\ruby-openid\examples\rails_openid>gem uninstall rails
Select gem to uninstall:
 1. rails-2.3.8
 2. rails-3.0.9
 3. rails-3.1.1
 4. All versions
> 3
Successfully uninstalled rails-3.1.1

2011年10月20日木曜日

Ruby on railsに付属するOpenIDサンプル(RP)でYahoo!(OP)に認証要求してみる

OpenIDを使用したRPの簡単構築」で構築したRPを使用し、Yahoo!JAPAN(OP)にOpenID認証を要求してみる。

①「Rails OpenID Example Replying Party」画面において、Identifierに「yahoo.co.jp」と入力し、Verifyボタンを押下する。

②OP(Yahoo!JAPAN)のログイン画面に遷移するため、IDとパスワードを入力し、「続ける」を押下する。



③ログイン後、同意画面(RPにOpenIDを提供するのか)が表示されるため、「同意する」を選択する。


④「Rails OpenID Example Replying Party」画面において、Verifycation succeedと出力されることを確認する。

2011年10月19日水曜日

OpenIDを使用したRPの簡単構築

Ruby on railsに付属するOpenIDサンプル(RP)を動かしてみる。
なお、前提としては、以下ができること。
・RubyGemsがDOSプロンプト上で動作できること。
・Railsプラグインが設定されたEclipseが起動できること。

RubyGemsを使用して、ruby-openidをインストールする。

C:\>gem install ruby-openid
Fetching: ruby-openid-2.1.8.gem (100%)
Successfully installed ruby-openid-2.1.8
1 gem installed
Installing ri documentation for ruby-openid-2.1.8...
Installing RDoc documentation for ruby-openid-2.1.8...


②ダウンロードしたものを任意の場所にコピーする。

c:\>xcopy /E  c:\Ruby187\lib\ruby\gems\1.8\gems\ruby-openid-2.1.8 c:\ruby-openid

③OpenIDを動かすために必要となるlog、dbディレクトリを作成する。

c:\>cd ruby-openid\examples\rails_openid
c:\ruby-openid\examples\rails_openid>mkdir log db

④Eclipseを起動し、「ファイル」タブ⇒「新規」を選択し、Rails Projectを作成する。

⑤作成したプロジェクトを右クリックし、「インポート」⇒「ファイル・システム」を選択し、「次へ」を押下する。ソース・ディレクトリーには、「C:\ruby-openid\examples\rails_openid」を選択し、「終了」ボタンを押下する。以上でOpenID用のプロジェクトが作成される。



⑥作成したプロジェクトを右クリックし、「新規」⇒「Mongrel Server」を選択し、Railsを動作させるWebサーバを作成する。

⑦config/enviroment.rbファイルにおいて、Railsを動かすためのセッションCookieを定義する。なお、":secret"属性は30文字以上であることに注意!


config.action_controller.session = {
    :session_key => '_openid_session',
    :secret      => '_session_id_abcdefghijklmnopqlstuvwxyz'
 }


⑧Webサーバを起動し、「http://localhost:3000/consumer」にアクセスし、以下の画面が表示されることを確認する。







2011年10月18日火曜日

Gemでエラー

以下のように、Gemでインストールする際にエラーが発生した場合の対処方法について説明する。

c:\>gem install ruby-openid
ERROR:  While executing gem ... (Gem::RemoteSourceException)
    HTTP Response 302 fetching http://gems.rubyforge.org/yaml

上記のエラーの原因は、古いダウンロードサイトにアクセスしようとして、エラーになるらしい。
以下のように、新バージョンのgemを直接ダウンロードしてgemのバージョンを更新する。

①以下のURLから「rubygems-1.8.9.zip」をダウンロードする。

http://rubyforge.org/frs/?group_id=126

②ダウンロードしたZIPを解凍し、セットアップ(setup.rb)を実行する。
(なにやらバグもなおったようだ)


C:\rubygems-1.8.9\rubygems-1.8.9>ruby setup.rb
RubyGems 1.8.9 installed


== 1.8.9 / 2011-08-23


* Bug fixes:
  * Fixed uninstalling multiple gems using `gem uninstall`
  * Gem.use_paths splatted to take multiple paths!  Issue #148


------------------------------------------------------------------------------


RubyGems installed the following executables:
        C:/Ruby187/bin/gem


③Gemのバージョンを確認する。



C:\rubygems-1.8.9\rubygems-1.8.9>gem -v
1.8.9



2011年10月17日月曜日

Tomcat 6(Windows X64版) SSLのサーバ認証設定

JDKのkeytoolを使って自己署名証明書を作成し、TomcatのSSL設定(サーバ認証)をする手順についてまとめます。

①鍵ペアを作成します。

C:\Windows\system32>keytool -genkey -alias server -keyalg RSA -keystore "c:\Prog
ram Files\Apache Software Foundation\Tomcat 6.0\server.jks"
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名を入力してください。
  [Unknown]:  yasu.hoge.com
組織単位名を入力してください。
  [Unknown]:
組織名を入力してください。
  [Unknown]:
都市名または地域名を入力してください。
  [Unknown]:
州名または地方名を入力してください。
  [Unknown]:
この単位に該当する 2 文字の国番号を入力してください。
  [Unknown]:  jp
CN=yasu.hoge.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=jp でよろしい
ですか?
  [no]:  yes


<server> の鍵パスワードを入力してください。
        (キーストアのパスワードと同じ場合は RETURN を押してください):

②自己署名証明書を作成します。

C:\Windows\system32>keytool -selfcert -alias server -validity 180 -keystore "c:\
Program Files\Apache Software Foundation\Tomcat 6.0\server.jks"
キーストアのパスワードを入力してください:

③証明書と鍵がキーストアの中にきちんと格納されていることを確認します。


C:\Windows\system32>keytool -list -v -keystore "c:\Program Files\Apache Software
 Foundation\Tomcat 6.0\server.jks"
キーストアのパスワードを入力してください:


キーストアのタイプ: JKS
キーストアのプロバイダ: SUN


キーストアには 1 エントリが含まれます。


別名: server
作成日: 2011/10/17
エントリタイプ: PrivateKeyEntry
証明連鎖の長さ: 1
証明書[1]:
所有者: CN=yasu.hoge.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=jp
発行者: CN=yasu.hoge.com, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=jp
シリアル番号: 4e9c20e3
有効期間の開始日: Mon Oct 17 21:34:43 JST 2011 終了日: Sat Apr 14 21:34:43 JST 2
012
証明書のフィンガープリント:
         MD5:  6F:70:EE:91:D1:B2:7B:2B:8E:35:34:29:C8:EE:DA:9B
         SHA1: 38:20:6D:52:10:37:3D:F6:E0:7B:58:31:4A:85:04:1A:D0:90:55:BE
         署名アルゴリズム名: SHA1withRSA
         バージョン: 3


*******************************************
*******************************************

④Tomcatの設定ファイル(server.xml)を開き、以下のように、ポート8443のコネクタのコメントアウト箇所をはずします。また、keystoreとkeypass属性と追記し、作成したものを設定します。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
                keystore= "c:\Program Files\Apache Software Foundation\Tomcat 6.0\server.jks" 
                keypass="password" />

⑤Tomcatを再起動します。

⑥ブラウザを使用し、https://localhost:8443でアクセスできることを確認します。





2011年10月16日日曜日

Tomcat 6(Windows X64版) インストール

①環境変数としてJAVA_HOMEを設定する。本環境では、以下を使用した。


C:\Program Files (x86)\Java\jre1.6.0_07


②以下のURLから「64-bit Windows Service Installer 」をダウンロードする。


http://tomcat.apache.org/download-60.cgi


③媒体をダウンロードした後、apache-tomcat-6.0.33.exeを実行する。インストールが開始される。


④セットアップ画面で、管理ユーザなどを入力し、「install」ボタンを押下する。インストール処理が完了したら、「Finish」ボタンを押下する。


⑤画面の右下に、Tomcatのプロパティアイコンが表示されるため、押下する。このプロパティ設定画面では、Tomcatの起動/停止やログレベルの設定がGUI上で設定可能である。


⑥ブラウザを使用し、http://localhost:8080にアクセスし、おなじみの画面が表示されることを確認する。