BLOGTIMES
2013/11/01

キーボード入力なしで CSR 生成する

  ssl 
このエントリーをはてなブックマークに追加

以前に OpenSSL を使った CSR 生成を expect を使って自動化するというのをやりましたが、何度見てもやり方がダサイのでなんとかならないかと思って、man を見直してみたら全ての入力項目がコマンドラインオプションから入力できることに気づいたのでメモ。やっぱり灯台下暗しでスマートなやり方が転がっていましたね。

使うオプションは -subj。これに続いて、CSR の入力項目を列挙するだけです。

OpenSSL: Documents, req(1)

-subj arg
Replaces subject field of input request with specified data and outputs modified request. The arg must be formatted as /type0=value0/type1=value1/type2=..., characters may be escaped by \ (backslash), no spaces are skipped.

以前と同じ項目を -subj 経由で指定するとこんな感じになります。
ちなみに必要がない項目については""とすることで、警告は出ますが無視されます。

C="JP" # Country Name ST="stname" # State or Province Name L="lname" # Locality Name O="oname" # Organization Name OU="ouname" # Organizational Unit Name CN="hoge.example.com" # Common Name E="hoge@example.com" # Email Address openssl genrsa -out $CN.key 2048 openssl req -new -key $CN.key -subj "/C=$C/ST=$ST/L=$L/O=$O/OU=$OU/CN=$CN/emailAddress=$E/" -out $CN.csr

こんな感じで Subject がきちんと設定されているのが確認できます。

$ openssl req -in $CN.csr -noout -text Certificate Request: Data: Version: 0 (0x0) Subject: C=JP, ST=stname, L=lname, O=oname, OU=ouname, CN=hoge.example.com/emailAddress=hoge@example.com Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) Modulus (2048 bit): (以下略)

これを使えばかなりスマートに CSR 生成が自動化できますね。
他人に指摘されて気づいたわけではないのですが、ちょっと恥ずかしい。。。。。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/6243
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン