OpenSSLコマンド

なんとなーくわかってきたよーな

openssl genrsa -des3 -rand

randfile1:randfile2:randfile3 1024 >server.key
で、keyファイルをつくって

openssl req -new -key server.key -out server.csr -sha1

で、keyファイルを元にcsrを作成する。
その時にコモンネームやら何やらを間違えないように入力し、
そのcsrファイルを認証局に送る。
送るとcrtファイルとして返ってくるので、それを
keyファイルと合わせてApacheに読み込ませるとね。

・keyファイル… 秘密鍵
csrファイル… なんだこれ、証明書の元?
・crtファイル…  認証局を通ってきた証明書?

ちなみにApacheに中間証明書をぶっこむのは、
ブラウザに証明書が入っていないと色々あれだからぶっこむ。の?

ベリサインさまより
Q:中間CA証明書はなぜ必要なのでしょうか


ベリサインのサーバIDは、3段階 または 4段階(EV SSL証明書)の階層で証明書を検証する仕組みになっています。

■ 3階層のサーバID

ルート認証局ルート証明書
 ┗中間CA局 (中間CA証明書)
  ┗サーバID (サーバ証明書

SSL接続の際、ブラウザは下層から順に証明書をたどり、
最上位のルート証明書までを確認してサーバIDを検証しています。
中間CA局の証明書がウェブサーバ側に設定されていないと正しい検証ができずに、
無効な証明書と認識されます。

ブラウザが正しく証明書を検証できるように、
取得したサーバIDとあわせて中間層の証明書(中間CA証明書)も
ウェブサーバにインストールする必要があります。

ちょっとおっしゃってる意味がわかりかねます…

どんだけ曖昧やねんじぶ〜ん

SSLに価値を見出せない僕は、未だにあいまいなのであった。。。


形式
openssl x509 [-in filename] [-out filename]
[-inform DER|PEM|NET] [-outform DER|PEM|NET]
[-days n] [-text] [-noout]
機能
X.509証明書の署名要求(CSR)の作成
オプション
-in filename
入力する証明書のファイル名(filename)
デフォルトは、標準出力
-out filename
出力する証明書のファイル名(filename)
デフォルトは、標準出力
-inform DER|PEM|NET
入力ファイルの書式
-outform DER|PEM|NET
出力ファイルの書式
-days n
X.509形式の証明書の有効期限をn日とする
-text
テキスト形式で表示する
-noout
出力ファイルに出力しない

PEM形式の証明書をDER形式に変換する
openssl x509 -inform PEM -outform DER -in ca.crt -out ca.der
PEM形式の証明書の内容をテキストで表示する
openssl x509 -noout -text -in ca.crt

とのこと。

既存のCRTファイル(証明書)を確認する場合は


証明書の期限を確認
openssl x509 -dates -noout -in CRT

モジュールの確認
openssl x509 -modulus -noout -in CRT

証明書をテキスト形式で出力
openssl x509 -text -noout -in CRT

秘密鍵の確認


秘密鍵のモジュールの確認
openssl rsa -modulus -noout -in KEY

秘密鍵をテキスト形式で出力
openssl rsa -text -noout -in KEY


openssl s_client -connect 対象サーバ:443 -CAfile 中間証明書ファイル

上記コマンドを実行し
Verify return code: 0(ok)になれば問題なし

ちなみにOpensslのバージョン調べるには

# openssl version

で、イケる。