Webサーバを立ち上げると、どうしてもセキュア化を意識します。
そこで、SSLサーバ証明書による通信の暗号化を行う場合のサーバ証明書取得までの流れのうち、CSRの作成までをまとめておきたいと思います。
ちなみに、下記2点を前提で話を進めます。
- opensslがインストールされていること
- 管理者のEメールアドレスが有効であること(CSRの作成までは有効でなくても問題ありませんが、実際にサーバ証明書取得申請時には有効であることが必要になります)
【CSRを作成するまでの流れ】
1.作業ディレクトリに移動
[root ~]# cd /etc/pki [root ~]# mkdir server [root ~]# cd /etc/pki/server
2.秘密鍵の作成
[root ~]# openssl genrsa -out server.key -des3 2048 Generating RSA private key, 2048 bit long modulus .......................................................................................+++ .......................................................................................+++ e is 65537 (0x10001) Enter pass phrase for server.key: ←パスフレーズを入力 Verifying - Enter pass phrase for server.key: ←パスフレーズを再入力 [root ~]# ll -rw-r--r-- 1 root root 1743 2月 22 21:43 server.key
※httpd の起動時に秘密鍵のパスワードを聞かれないようにするためには。
次のようにパスワードを聞かれる!
[root ~]# service httpd start
httpd を起動中: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.
Server www.goofoo.jp:443 (RSA)
Enter pass phrase:
(1)秘密鍵作成時のコマンドオプションから「-des3」を外す。
(2)すでにコマンドオプション「-des3」を付けて作成した鍵に対しては、次のコマンドを実行する。
[root ~]# openssl rsa -in server.key -out server.key
3.CSRの作成
[root ~]# openssl req -new -out server.csr -key server.key Enter pass phrase for server.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]: ←都道府県名を入力 Locality Name (eg, city) [Newbury]: ←市区名を入力 Organization Name (eg, company) [My Company Ltd]: ←組織名を入力(例えばGOOFOO) Organizational Unit Name (eg, section) []: ←入力しなくても大丈夫 Common Name (eg, your name or your server's hostname) []:goofoo.jp ←証明する対象のドメインを入力 Email Address []:abcde@goofoo.jp ←管理者のEメールアドレス Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: ←何も入力しないでENTER An optional company name []: ←何も入力しないでENTER [root ~]# ll -rw-r--r-- 1 root root 1041 2月 22 21:49 server.csr -rw-r--r-- 1 root root 1743 2月 22 21:43 server.key
4.CSRの内容を確認
[root ~]# cat server.csr -----BEGIN CERTIFICATE REQUEST----- MIICyDCCAbACAQAwgYIxCzAJBgNVBAYTAkpQMREwDwYDVQQIEwhLQU5BR0FXQTER MA8GA1UEBxMIS0FXQVNBS0kxDzANBgNVBAoTBkdPT0ZPTzESMBAGA1UEAxMJZ29v Zm9vLmpwMSgwJgYJKoZIhvcNAQkBFhlzYXRvbWFydUB6ZXBoeXIuZHRpLm5lLmpw MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqooiwgPuHBUz2VN6ZpzJ ~中略~ rOrtKWWrmZFNdPwzGq5t22MXGaoMO9O1FvM+CpIaNwYH8VLn2gymY/KCZpThZZmT rmlY5EKVitK66cdya2Oibv+ZWCcge+NHQFSjaKRhWrzkcwk79955PNc1R9LT1nF8 V1p214+hIcePODsHFS19QuTdXzo/+Vy+5Zi5m7deUmgvwkhf7CA5NVZfsMGahSL4 5cpEjPTn7IRsF+vLA9dEoM/Bz+ujYuzANF0HFKb4IQ3yIYIT01urID8ydw8= -----END CERTIFICATE REQUEST-----