OpenSSLの1.0.1~1.0.1f、1.0.2-beta~1.0.2-beta1について脆弱性が確認されています。
対象となるバージョンを利用されている場合には、早急にアップデートもしくはHearbeatオプションを除外してリコンパイルしましょう。
鍵ファイル、パスワードは再発行しましょう。
JPCERT


目的

OpenSSLを利用してPKI環境を構築する。
Linuxはubuntu12.04を利用。本稿記述時点でのバージョンは1.0.1

[ubuntu@pki]$ openssl
OpenSSL> version
OpenSSL 1.0.1 14 Mar 2012

PKIの基本

PKI(Public Key Infrastructure)公開鍵基盤

公開鍵の方式を利用して、アクセス対象の真正性を保証し、通信を行う仕組み。らしい。
厳密な定義はよくわかりません。 IPAの記事などを 読んでおかなきゃとおもいつつ、読めてません。

導入方法

インストール

#これだけ!

[ubuntu@pki ~]$ sudo apt-get update
[ubuntu@pki ~]$ sudo apt-get install openssl

コマンドの基本的な使い方

通常利用するコマンド

秘密鍵を作成する。

openssl genrsa -out key.pem [暗号化方式] [ビット長]
暗号化方式は -des -des3 -aes128 -aes192 -aes256 など

秘密鍵に対応した署名要求を作成する。

openssl req [-config conffile] -new -key key.pem -out req.pem

CSRにサインして、証明書を作成する。

openssl ca  [-config conffile] -in req.pem -out crt.pem

秘密鍵とCSRを同時に作成することも可能

openssl req -new -newkey rsa:1024 -keyout key.pem -out req.pem

簡易的に利用する場合

既存の秘密鍵を利用し、CSRを作成せずに自己署名証明書を生成する。

openssl req -new                  -key    key.pem -x509 -days 365 -out crt.pem

新規の秘密鍵を生成し、CSRを作成せずに自己署名証明書を生成する。

openssl req -new -newkey rsa:1024 -keyout key.pem -x509 -days 365 -out crt.pem

そのほかよく使うコマンド例

秘密鍵からパスフレーズを削除する場合

openssl rsa -in serverkey.pem -out serverkey.pem

再度署名しようとしても、エラーでできない場合は、一旦無効化する必要がある。

openssl ca -revoke ./newcerts/cert.pem

証明書から不要な情報(Certificate:~~)を除去

openssl x509 -in crt.pem -out crt.pem

証明書からバイナリ形式作成

openssl x509 -inform pem -in crt.pem -outform der -out crt.der

秘密鍵は秘密のフォルダに移動し、誰にも見られないようにする。

mkdir private
mv key.pem private
chmod 400 key.pem

PKIの構築

構築する内容

OpenSSLコンフィグファイル

それぞれの用途に合わせてファイルを作成しておく

[ubuntu@pki ~/ssl]$ mkdir configs
[ubuntu@pki ~/ssl]$ cd configs

プライベート認証局(ルート認証局)の作成

/ssl/rcaに作成するものとする。

[ubuntu@pki ~ssl]$ mkdir ~/ssl/rca
[ubuntu@pki ~ssl]$ cd ~/ssl/rca

単純にCSRを作成するだけで、「CAの」CSRといっているわけではない。次の手順でCA用にサインしているだけだ。

プライベート認証局(中間認証局)の作成

/ssl/icaに作成するものとする。

[ubuntu@pki ~ssl]$ mkdir ~/ssl/ica
[ubuntu@pki ~ssl]$ cd ~/ssl/ica

webサーバを利用したサーバ認証とクライアント認証

apacheを利用して、サーバ認証とクライアント認証を実施する。
サーバにルートCAから発行されたサーバ証明書を配置、クライアントに中間CAから発行されたクライアント証明書を配置し、正常に通信が行えるかを確認する。

サーバ証明書によるサーバの正当性確認

webサーバ証明書の作成(ルート認証局で発行)

/ssl/websvに作成するものとする。

[ubuntu@pki ~ssl]$ mkdir ~/ssl/websv
[ubuntu@pki ~ssl]$ cd ~/ssl/websv

webサーバ設定

apache2の設定を実施する。

クライアント設定

前の手順で作成しておいたルート証明書をクライアント(ブラウザ)にインストールする

接続テスト

実際にブラウザから接続してみて、セキュリティ警告がでないことを確認する。
ちなみに、上記のままのCSRだと、FQDNが正しくないと警告がでてしまうため、ローカルのIPアドレスなどを指定する。

クライアント証明書による接続クライアントの制限

クライアント証明書の作成(中間認証局で発行)

/ssl/clientに作成するものとする。

[ubuntu@pki ~ssl]$ mkdir ~/ssl/client
[ubuntu@pki ~ssl]$ cd ~/ssl/client

webサーバ設定

apache2の設定を実施する。

クライアント設定

前の手順で作成しておいた中間証明書をクライアント(ブラウザ)にインストールする
前の手順で作成しておいたクライアント証明書をクライアント(ブラウザ)にインストールする

接続テスト

実際にブラウザから接続してみて、セキュリティ警告がでないことを確認する。




Counter: 10513, today: 1, yesterday: 0

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