4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ワンライナーでSSL証明書のCSRを生成する

Last updated at Posted at 2016-08-05

ワンライナー

秘密鍵とCSRファイルの一括生成

cd /etc/pki/tls/private ;
s=www.example.jp ;
head /dev/urandom > /dev/null ;
openssl req -subj "/C=JP/ST=Tokyo/L=Chuo-ku/O=Example K.K./OU=Example Section/CN=$s" -new -newkey rsa:2048 -rand /dev/urandom -nodes -keyout $s.key -out $s.csr ;
openssl req -subject < $s.csr
出力例
Generating a 2048 bit RSA private key
.........................................................................................+++
.....................................................+++
writing new private key to 'www.example.jp.key'
-----
subject=/C=JP/ST=Tokyo/L=Chuo-ku/O=Example K.K./OU=Example Section/CN=www.example.jp
-----BEGIN CERTIFICATE REQUEST-----
MIICvjCCAaYCAQAweTELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBVRva3lvMRAwDgYD
VQQHDAdDaHVvLWt1MRUwEwYDVQQKDAxFeGFtcGxlIEsuSy4xGDAWBgNVBAsMD0V4
YW1wbGUgU2VjdGlvbjEXMBUGA1UEAwwOd3d3LmV4YW1wbGUuanAwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzic281xJRAZGBAhP85vGex7fN/UBA+icW
Y18DyGYBpAUAnL8+kgwRSMiyfz/BprsSuki2bw2ivmMKPslLM9LizPnxaEKujCel
UKbR4++GiFTWAuKupZJvFVFYBOGVAw9DhIF2qi/ihreLSGvHi0VFu+7dEsR4AMpW
axRRPZoF/wnkHzpNSCSUQ371WKFPfZIvFidXX9+nl9tBaG9kYkkF+6glCEWiT5z0
10RXGaoGOYu9CtVE1cClAHTL3Qgkb3XxTngQ1yrnpBpCRMkuHB/gRyuooDuERFWr
rUOhEXEGKOl/dgyDVHmPZj7Q+G94n3QJ0maSGObp1jPJc6In8Ff3AgMBAAGgADAN
BgkqhkiG9w0BAQsFAAOCAQEAJ8/AGbm9JNneOMK1S5/X1f0kqv3rNlL/ZjRBDhj4
DBDNaMXOYvPFDnHPC07DDBAG2PSrcm/Hh/GG4xLAzgpPeholeYx8kUlHa4x1ET1c
t/FHyN3U4tNV4PCP6hT9buv9RqOcVrYNLmmwAYq0A3ggBD8HHSNXdBLygMxPeO9c
PdxHzeUMnSnR6vNvnhTAx51nkcKgm8mUrs+VIhSB2oE7hmz+lpsOOxbdEeHyfmv+
5SmxYVprE3tIAt/MVt6nc9fhxI+v0o0v/h0H8z4APYNFPcSUmvF54v5ZhCYkKjiv
TLoHoLvRTUmI8WBZKGvZbyOQHMLIOLNTF8zxCv/2Z2x7DQ==
-----END CERTIFICATE REQUEST-----

ワンライナーと言いつつ見づらいので改行しておく。
s=www.example.jp/C=JP/ST=Tokyo/L=Chuo-ku/O=Example K.K./OU=Example Section を条件に合わせて変更する。
/etc/pki/tls/private/www.example.jp.key/etc/pki/tls/private/www.example.jp.crt が生成される。
subject= の行で内容を確認し、-----BEGIN CERTIFICATE REQUEST----- から -----END CERTIFICATE REQUEST----- までをコピーしてSSL証明書の申込画面に貼り付ける。

旧来のやり方

秘密鍵の生成

cd /etc/pki/tls/private
head /dev/urandom > /dev/null
openssl genrsa -passout pass:P@assw0rd -aes256 -rand /dev/urandom 2048 > www.example.jp.key
出力例
2048 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
...+++
.....................+++
e is 65537 (0x10001)

openssl genrsa は RSA 秘密鍵を生成するコマンド。出力ファイルは -out ファイル名 でも指定できる。
-aes256 は暗号化アルゴリズム。-aes128 -aes192 -aes256 -camellia128 -camellia192 -camellia256 -des -des3 -idea などが指定できる。-des3 の記述が多いが、強度の観点からは -aes256-camellia256 が望ましい。
-rand オプションでは rand.dat をいちいち作成する例が多いが、わざわざゴミファイルを作る必要はない。
暗号化アルゴリズムおよび -rand は未指定でも生成されるが、その場合のデフォルト条件は不明。

パスワードの解除

openssl rsa -in www.example.jp.key -out www.example.jp.key -passin pass:P@assw0rd
出力例
writing RSA key

Apache が再起動した際にパスワードを求められて止まってしまうので、パスワードを解除しておく必要がある。パスワードありの場合、一応 SSLPassPhraseDialog ディレクティブで対応できる。

CSR の生成

openssl req -new -subj "/C=JP/ST=Tokyo/L=Chuo-ku/O=Example K.K./OU=Example Section/CN=www.example.jp" -key www.example.jp.key > www.example.jp.csr
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?