SSL証明書を申請する時のTips


ワンライナーで秘密鍵(パスフレーズ無し)・CSR(SHA-2)を作成する。

$ openssl req -new -sha256 -subj "/C=XXXXX/ST=XXXXX/L=XXXXX/O=XXXXX/OU=XXXXX/CN=XXXXX" -out XXXXX.csr -newkey rsa:2048 -nodes -keyout XXXXX.key 

XXXXX は、必要な情報に置き換えてください。

コマンドの詳細は以下のコマンドで確認すると良いです。

$ openssl req -help

コマンドを読み解いていくと-

openssl req -new -sha256

新規にCSRをSHA-2で作成する。
SHA-1で作成する場合は、-sha1 とすれば良い。
SHA-1証明書の発行は2015年一杯で終了ですが念のため。

-subj "/C=XXXXX/ST=XXXXX/L=XXXXX/O=XXXXX/OU=XXXXX/CN=XXXXX"

国やら会社名とか入れるところ。
説明は、いろいろなところにあるから省きます。

-out XXXXX.csr

CSRを XXXXX.csr で作成する

-newkey rsa:2048 -nodes

新規に秘密鍵をパスフレーズなし(-nodes)の2048bitで生成する。

-keyout XXXXX.key

秘密鍵を XXXXX.key で作成する。

これで、CSRと秘密鍵が同時に作成できます。

秘密鍵とCSRがペアであることを確認する。

CSRと秘密鍵の modules を比較し同じであればペア。

・CSRから modules だけ抜き出すコマンド

$ openssl req -in XXXXX.csr -noout -modulus

・秘密鍵から modules だけ抜き出すコマンド

$ openssl rsa -in XXXXX.key -noout -modulus

これらの結果を diff で比較すれば簡単に確認できる。

$ diff <(openssl rsa -in XXXXX.key -noout -modulus) <(openssl req -in XXXXX.csr -noout -modulus)

SSL証明書申請時の Organization Name と ドメイン の Organization(whoisで確認できる)を乖離させない。

申請が通らないことがあるので注意する。