なんかてきとうに

わりと個人的な忘備録的ですよ。

お勉強

OpenSSL その5

x509

X509証明書に関する操作を行う。

主な出来ることは

  • X509形式の証明書を表示する。

  • X509形式の証明書の特定情報を表示する。

  • X509形式の証明書からリクエストファイルを作成する。

  • リクエストからX509形式の証明書を作成する。

  • 公開鍵を出力する。

というところ。

  • -inform 入力ファイルの形式を指定する。(PEM | DER | NET)

  • -outform 出力ファイルの形式を指定する。(PEM | DER | NET)

  • -keyform 秘密鍵ファイルの形式を指定する。(PEM | DER)

  • -CAform 認証局の証明書ファイルの形式を指定する。(PEM | DER)

  • -CAKeyform 認証局秘密鍵ファイルの形式を指定する。(PEM | DER)

  • -text 証明書をテキスト形式で表示する。

  • -C 証明書をCコード形式で表示する。

  • -serial 証明書のシリアル番号を表示する。

  • -subject_hash subject(被認証者)のハッシュ値を表示する。

  • -subject_hash_old subject(被認証者)のハッシュ値を表示する(旧いスタイルで)。

  • -issuer_hash issuer(発行者)のハッシュ値を表示する。

  • -issuer_hash_old issuer(発行者)のハッシュ値を表示する(旧いスタイルで)。

  • -subject subject(被認証者)を表示する。

  • -issuer issuer(発行者)を表示する。

  • -email E-mailを表示する

  • -startdate 証明書が有効になる日時を表示する。

  • -enddate 証明書が無効になる日時を表示する。

  • -dates 証明書が有効になる日時、無効になる日時を表示する。

  • -purpose 証明書のpurpose(目的)を表示する。

  • -modulus RSA modulus を表示する。

  • -pubkey 公開鍵を出力する。

  • -fingerprint fingerprintを表示する。

  • -alias 証明書についているalias(別名)を表示する。

  • -setalias 証明書にalias(別名)を追加する。

  • -trustout 信頼情報のついた証明書を出力する。

  • -signkey 自己署名証明書の作成を行う。

  • -days 証明書の作成を行う際、有効日数を指定する。

  • -x509toreq リクエストファイルを出力する。

  • -req リクエストファイルを入力にし、証明書を出力する。

  • -CA CA証明書を指定する。(標準はPEM)

  • -CAKey CAの秘密鍵を指定する(PEMでなければならない)

  • -CAcreateserial CAのserialファイルがなければ作成する。

  • -CAserial CAのserialファイルを指定する。

  • -set_serial serial番号を使う。

  • -md2, -md5, -sha1, -mdc2 使うハッシュ関数を指定する。

  • -extfile X509V3拡張をファイルから読み込む。

  • -extensions X509V3拡張を設定する。

dgst

ハッシュ値を出力したり、ファイルに署名をしたりする。

rsautl の sign と違って、ハッシュ値を計算し、ハッシュ値に署名をして出力する。

また、出力されたファイルをと元ファイルを指定して署名の検証が出来る。

  • -sign 秘密鍵を使ってファイルに署名する。

  • -verify 公開鍵を使ってファイルの署名を検証する。

  • -prverify 秘密鍵を使ってファイルの署名を検証する。

  • -keyform 鍵のフォーマットを指定する。 (PEM | ENGINE)

  • -out 出力ファイルを指定する。

  • -signature 署名ファイルを指定する。

  • -sigopt nm:v 署名パラメータを指定する。

  • -hmac 鍵からhash MAC 作成する。

  • -mac 指定のアルゴリズムからMAC(HMACでない)を作成する。

  • -macopt nm:v MACアルゴリズムのパラメータもしくは鍵を指定する。

  • -md4, -md5, -mdc2 -ripemd160, -sha, -sha1 ... -sha512, -whirlpool 使用するアルゴリズムを指定する。

  • -c 16進数出力時に2桁ごとに:で区切る。

  • -hex 出力を16進数にする。

  • -r ハッシュ値の出力を coreutil形式(md5sumのような)にする。

使用例

  • openssl dgst -md5 -sign key.pem -out sigfile normalfile
    アルゴリズムMD5に指定してkey.pem秘密鍵で normalfileに署名。署名ファイルはsigfile。

  • openssl dgst -md5 -verify pub.pem -signature sigfile normalfile
    アルゴリズムMD5に指定してpub.pem公開鍵で normalfileを検証。署名ファイルはsigfile。

  • openssl dgst -md5 -prverify key.pem -signature sigfile normalfile
    アルゴリズムMD5に指定してkey.pem秘密鍵で normalfileを検証。署名ファイルはsigfile。

  • openssl dgst -md5 -sign key.pem -out sigfile -hex normalfile
    アルゴリズムMD5に指定してkey.pem秘密鍵で normalfileに署名。出力は16進数、署名ファイルはsigfile。

  • openssl dgst -md5 -sign key.pem -out sigfile -hex -r normalfile
    アルゴリズムMD5に指定してkey.pem秘密鍵で normalfileに署名。出力は16進数md5sum形式、署名ファイルはsigfile。

  • openssl dgst -md5 -sign key.pem -out sigfile -hex -c normalfile
    アルゴリズムMD5に指定してkey.pem秘密鍵で normalfileに署名。出力は16進数2桁ごとに:で区切る、署名ファイルはsigfile。

  • openssl dgst -md5 normalfile
    normalfileのMD5ハッシュ値を出力

  • openssl dgst -md5 -c normalfile
    normalfileのMD5ハッシュ値を出力。(2桁ごとに区切って)

  • openssl dgst -md5 -r normalfile
    normalfileのMD5ハッシュ値を出力。(md5sumと同じ形式で)

  • openssl dgst -sha normalfile1 normalfile2
    normalfile1 normalfile2 のSHAハッシュ値を出力