Home Update クッキー及びWeb ビーコンについて



OpenSSLコマンドとその用例

OpenSSLコマンド

 OpenSSLのコマンドは、オプションがたくさんあって筆者が非常に忘れやすいので簡単に整理してみたいと思います。また、その使い方についても触れていきます。OpenSSLは、セキュアなサーバーを構築しようとする際には必須となりますので正しい用法を覚えておいて損はないでしょう。なお、ここではすべて説明するわけではなく、当サイトで証明書を作成する際に説明するレベルの範囲内に留めておきます。コマンドがわからなくなったら、当ページを参考にしてみてください。




■コマンドの種類

 OpenSSLコマンドの種類は、その役割ごとに標準コマンドの「Standard commands」、ダイジェスト認証用のコマンド「Message Digest commands」、暗号化コマンドの「Cipher commands」3つに分類されます。


# /usr/local/ssl/bin/openssl --help
Standard commands
asn1parse      ca             ciphers        crl            crl2pkcs7
dgst           dh             dhparam        dsa            dsaparam
enc            engine         errstr         gendh          gendsa
genrsa         nseq           ocsp           passwd         pkcs12
pkcs7          pkcs8          rand           req            rsa
rsautl         s_client       s_server       s_time         sess_id
smime          speed          spkac          verify         version
x509

Message Digest commands (see the `dgst' command for more details)
md2            md4            md5            mdc2           rmd160
sha            sha1

Cipher commands (see the `enc' command for more details)
aes-128-cbc    aes-128-ecb    aes-192-cbc    aes-192-ecb    aes-256-cbc
aes-256-ecb    base64         bf             bf-cbc         bf-cfb
bf-ecb         bf-ofb         cast           cast-cbc       cast5-cbc
cast5-cfb      cast5-ecb      cast5-ofb      des            des-cbc
des-cfb        des-ecb        des-ede        des-ede-cbc    des-ede-cfb
des-ede-ofb    des-ede3       des-ede3-cbc   des-ede3-cfb   des-ede3-ofb
des-ofb        des3           desx           idea           idea-cbc
idea-cfb       idea-ecb       idea-ofb       rc2            rc2-40-cbc
rc2-64-cbc     rc2-cbc        rc2-cfb        rc2-ecb        rc2-ofb
rc4            rc4-40         rc5            rc5-cbc        rc5-cfb
rc5-ecb        rc5-ofb



■RSA秘密鍵の作成(openssl genrsa)

openssl genrsa [ -des | -des3 | -idea ] -out file -rand file [numbits]

 -des、-des3、-ideaは暗号化アルゴリズムを指定します。-out はファイルを出力します。-rand は乱数データの元となるファイルをロードします。numbit は暗号鍵を何ビットで生成するかを指定することができます。「-out ファイル名 」は、「> ファイル名 」で代用できます。

◎1024bit des3暗号化アルゴリズムのRSA秘密鍵の作成
openssl genrsa -des3 -out ca.key -rand rand.dat 1024
=openssl genrsa -des3 -rand rand.dat 1024 > ca.key



■証明書の署名要求(CSR)の作成(openssl req )

openssl req -new    # 新規証明書の署名要求の作成
         -x509   # X.509形式の証明書要求ファイルを作成する
         -days   # X.509形式の証明書要求の有効期限(デフォルト30日)
         -inform  # DER あるいはPEMを入力する
         -outform # DER あるいはPEMを出力する
         -key file # file に含まれる秘密鍵を使用する

--PEM(Privacy Enhanced Mail)
   電子メールの暗号化方式

--DER(Distinguished Encoding Rules)
   ブラウザに組み込まれる証明書のエンコード方式

--CA(Certification Autority)
   証明書を発行する第三者機関のこと。ここでは自分のサーバーが認証局となる。

--CSR(Crtificate Signing Request)
   証明書の署名要求ファイル

--CRT
   署名済みの証明書(当サイトでは、自己証明を行います)。


◎X.509形式の証明書発行要求の作成
openssl req -new -x509 -out ca.csr -key ca.key

 上記コマンドは、CA秘密鍵からCA証明書発行要求(CSR)を作成しています。CAに送るデジタル証明書のリクエストファイルになります。有効期限は365日、証明書要求ファイルの形式は、X.509です。なお、CSRを作らずとも下コマンドのようにCA用秘密鍵からいきなり、自己署名証明書(CRT)を作成することもできます。

◎X.509形式の自己署名証明書の作成(1年間有効)
openssl req -new -x509 -out ca.crt -key ca.key -days 365


◎PEM形式⇒DER形式への変換
openssl x509 -inform PEM -outform DER -in ca.crt -out ca.der

 上記のderファイルは証明書をブラウザにインポートするために使用する。


◎サーバー用秘密鍵と署名要求から自己署名証明書を作成
openssl req -in server.csr -key server.key -x509 -out server.crt

 証明書(server.crt)は通常、Verisignなどの第三者機関によって発行されますが、ここでは、自己署名して証明書を作成しています。

◎サーバ用秘密鍵と自己署名証明書から、電子メール用証明書の作成
(cat server.crt ; cat server.key) > mail.pem



■乱数データの作成(openssl dgst)

openssl dgst [-md5|-md4|-md2|-sha]

◎/var/log/messages を元にMD5で乱数データを作成
openssl dgst -md5 /var/log/messages > rand.dat
# more rand.dat
MD5(/var/log/messages)= 61781da3ada4542d72205d9ac9cf1bb4

 /var/log/messages はログが絶えず記録されていくのでランダムデータを作成する元ファイルとして使用するには丁度いいかとおもいます。







TOPに戻る

Sponcerd Link


Search
 
Web サイト内
Rental Server

【レンタルサーバのXbit】 低価格・高品質のビジネスクオリティー。300メガ1,050円〜30分で サービススタート可能!


容量300MB、月額125円、高性能なサーバが日本最大級のバックボーンに直結。
さくらのレンタルサーバ



当サイトはLinux自宅サーバーの構築を目的としたサイトです。
当サイトに関するご意見、ご要望等は、こちらのメールアドレスよりお願いします。
Beginning | Introduction | Installation | Server |
Security | Tips | Guest Book | Related-Sites
Copyright©2003-2006 KORO All Rights Reserved.
総計:
今日:
昨日: