SSLサーバ証明書取得のための秘密鍵作成とCSR作成

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-----

Comments are closed.