秘密鍵の生成(パスフレーズ不要版含む)とCSRの発行コマンドは、調べる→忘れるを繰り返しているのでメモ。
事前準備として、秘密鍵とCSRとSSL証明書を入れるディレクトリを作っておく。
$ su - # cd /usr/share/ssl # mkdir {key,csr,crt}
秘密鍵の生成
パスフレーズが必要な秘密鍵の生成
とりあえずコレ作らないとはじまらないです。
# openssl genrsa -des3 -out ./key/hostname.key 1024 Generating RSA private key, 1024 bit long modulus ..++++++ ..........++++++ e is 65537 (0x10001) Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力 Verifying - Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力
パスフレーズが不必要な秘密鍵の生成
Apacheとかで使う。ご利用は計画的に。
# openssl rsa -in ./key/hostname.key -out ./key/hostname.nopassword.key Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力 writing RSA key
CSRの生成
秘密鍵で設定したパスフレーズを入力する必要あり。
# openssl req -new -key ./key/hostname.key -out ./csr/hostname.csr Enter pass phrase for ./key/hostname.key: ←パスフレーズ入力 You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]:JP State or Province Name (full name) [Berkshire]:Tokyo Locality Name (eg, city) [Newbury]:Shibuya-ku Organization Name (eg, company) [My Company Ltd]:Hoge Inc. Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:www.example.com Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Common Name の箇所は、SSL証明書を発行したいドメイン名ではなく、FQDN名を入れる。うっかりすると使い物にならない証明書を発行してしまうこともあるので注意。
無事SSL証明書が発行されたら、crtディレクトリに入れる。必要であれば中間証明書も入れちゃっていいのではないかと。