OrcaでglclientのSSL接続

更新日 2011-02-24 (木) 16:48:38

CA、サーバ、クライアント証明書作成

ツールの設定

/etc/apt/sources.listの最後の行に以下を追加

deb ftp://orca.med.or.jp/pub/debian sarge jma
$ sudo aptitude update
$ sudo aptitude install jma-certtool

[Xwindow上の端末でglclient2を使用するユーザでログイン]

$ jma-certtool

パスワードを聞かれるので、rootとあるが、sudoの時のユーザパスワードを入力

初めて起動するとCA証明の情報を入力

新しいCAの名前: ismCA
国名(必須) : JP
組織名(必須) : Orca Team
コモンネーム : Orca
鍵アルゴリズム : RSA
鍵(ビット長)   : 2048
ダイジェスト   : SHA1
CA鍵パスワード :************   (1)

その後新規作成でサーバ証明書、クライアント証明書を作成

サーバ証明書

国名(必須) : JP
組織名(必須) : Orca Team
コモンネーム(必須) :localhost

コモンネームにはFQDNかIPアドレスを入れる

鍵アルゴリズム : RSA
鍵(ビット長)   : 2048
ダイジェスト   : SHA1

その後「OK」

CAによる署名

CA鍵パスワード : (1)を入力
プロファイル:「orca-server」
ユーザ名  : 空白

証明書の有効期限はCAの有効期限より短くする必要がある。クライアントも同じ

クライアント証明書

国名(必須) : JP
組織名(必須) : Orca Team
コモンネーム(必須) :ormaster (担当者、クライアント名など)
鍵アルゴリズム : RSA
鍵(ビット長)   : 2048
ダイジェスト   : SHA1

その後「OK」

CAによる署名

CA鍵パスワード : (1)を入力
プロファイル:「orca-client」
ユーザ名  : oruser (すでにorcaに登録済のユーザを指定)

CA証明書 サーバ証明書 クライアント証明書のエクスポート

先にhomeに適当なディレクトリ ssl_keyを作成

$ mkdir ssl_key
$ chmod og-rwx ssl_key

サーバ証明書

証明書タブで

クライアント証明書

証明書タブで

CA証明書

認証局タブで CA証明書のエクスポート(PEM)

保存先は同様に「ssl_key」に「gl-cacert.pem」という名前で保存

ユーザDBファイル作成

メニューの「ツール」から「日レセ用ユーザDBを作成する」

ファイル名がuserdbなのでそのままでssl_keyに保存

従来はglauthサーバが認証を請け負っていたのをこのファイルに変更するため

サーバ設定

作成ファイルを配置

現時点ではサーバ機とクライアント機が同一マシン

$ cd ~/ssl_key
$ sudo cp glserver.p12 /etc/jma-receipt/
$ sudo cp gl-cacert.pem /etc/ssl/certs/
$ sudo cp userdb /etc/jma-receipt/
$ sudo cp ormaster.p12 ~/.glclient/gl-client.p12
$ sudo chown orca.orca /etc/jma-receipt/glserver.p12
$ sudo chmod 400 /etc/jma-receipt/glserver.p12
$ sudo chmod 400 ~/.glclient/gl-client.p12

以下も必要かも

$ sudo chmod 500 ~/.glclient

jma-receipt 再設定

SSLでの接続を設定し、ユーザ認証のglauthサーバを停止する設定を行う

$ sudo /usr/sbin/dpkg-reconfigure jma-receipt

基本は現在の指定をそのまま使用し、「glauthサーバ」は使用しないを選択し 「SSLは有効」を指定する

-----------|jma-receipt を設定しています|------------------
|  jma-receipt 用に dbredirector をスタートしますか?      |
|                                                         |
|                <はい>               <いいえ>(選択)      |
|                                                         |
-----------------------------------------------------------
----------------|jma-receipt を設定しています|-------------------------
|SSLを有効にするには電子証明書が必要です。またパスワード認証が無効に  |
|なるため、SSLに対応していないクライアントを利用して接続できなくなりま|
|す。                                                                 |
|                                                                     |
|glserver の SSLを有効にしますか?                                     |
|                                                                     |
|                 <はい>(選択)              <いいえ>                  |
|                                                                     |
-----------------------------------------------------------------------

その後再起動

$ sudo /etc/init.d/jma-receipt restart

確認

$ netstat -an | grep -i tcp
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN
tcp        0     52 10.99.99.193:22         10.99.99.100:52836      ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:631                 :::*                    LISTEN
tcp6       0      0 ::1:5432                :::*                    LISTEN

8000ポートに接続でうまく動作するはず。なぜか8001も開いてしまったが未調査

8000ポートのオープンがないときはうまく動作しなかった(それ以外のポートは不可)

確認ように端末から以下のコマンド(マニュアルはglclientだがglclient2しかないので)で確認したが以下のエラーが出た

$ glclient2 -port localhost:8000 -ssl -cert ~/.glclient/gl-client.p12 -CAfile /etc/ssl/certs/gl-cacert.pem panda:orca00

SSL_CTX_load_verify_locations(<CA証明書へのパス、またはCA証明書ファイル>)でエラーが発生しました: 「CA証明書へのパス」または「CA証明書ファイル」が不正な可能性があります。

でも、通常にglclient2からは接続できた

さらに「ssh-askpass」が必要かもしれないのでインストール

$ sudo aptitude install ssh-askpass ssh-askpass-gnome

glclient2の接続

基本タブ

ホスト名はサーバ証明書の「コモンネーム」を指定後はSSLを使用しない時と変更なし

ssl1.png

SSLタブ

ssl2.png

パスフレーズ入力

クライアント証明書のエクスポートでの出力ファイルパスワード(2)を入力

ssl3.png


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS