※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


目次


証明書署名要求(CSR)の生成

サーバ証明書を入手するには、まずサーバ証明書の元ネタを作る必要があります。このサーバ証明書の元ネタを証明書署名要求(CSR)といいます。
(ちなみに、元ネタを作る作業は、サーバを管理している人が行います。)
普通サーバ管理者とCA局は、別の組織であったり別の会社(例、別の会社とベリサイン)であったりしますので、サーバ管理者は、作ったCSRを何らかの形でCA局に渡す必要があります。CA局は、サーバ管理者からもらったCSRにCA局の秘密鍵で署名し、サーバ証明書を生成します。CA局は、生成した証明書を何らかの方法でサーバ管理者に渡し、サーバ管理者がもらったサーバ証明書をサーバにインポートすることで、サーバはSSL等の通信ができるようになります。

ここでは、これら一連の手順の中の CSRの生成 について説明します。

やはりCA.plを使って簡単にCSRを作ってみましょう。

CSRの生成


C:\OpenSSL\bin>CA.pl -newreq
Loading 'screen' into random state - done
Generating a 1024 bit RSA private key  <---/*秘密鍵生成中*/
                          /*CSRには公開鍵も含まれているので*/
                          /*公開鍵のペアとなる秘密鍵を作って*/
                          /*おく必要があります。*/
.....++++++
....................++++++
writing new private key to 'newkey.pem' <---/*秘密鍵を*/
                          /*newkey.pemに書き込んでいます*/
Enter PEM pass phrase: <---/*秘密鍵にパスフレーズを設定することで*/
                           /*秘密鍵を使用する際にパスフレーズが要*/
                           /*求されます。このことで、管理者権限を*/
                           /*持つ人だけが、秘密鍵を使えるようにな*/
                           /*ります。*/
Verifying - Enter PEM pass phrase: <---/*確認のためもう一度*/
-----
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) [AU]:JP <---/*サーバに関する情報を以下のように入力*/
State or Province Name (full name) [Some-State]:osaka
Locality Name (eg, city) []:toyonaka
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyUniv
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:www.myuniv.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <---/*Enter*/
An optional company name []: <---/*Enter*/
Request is in newreq.pem, private key is in newkey.pem
<---/*CSRのファイル名がnewreq.pemで、秘密鍵のファイル名がnewkey.pem*/
    /*であることがわかります。*/

生成されたファイル


生成されたファイル名は、newkey.pem(秘密鍵)とnewreq.pem(CSR)です。

C:\OpenSSL\bin>dir *.pem
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 54A5-8EF0 です

 C:\OpenSSL\bin のディレクトリ

2007/12/31  07:45               963 newkey.pem
2007/12/31  07:45               631 newreq.pem
               2 個のファイル               1,594 バイト
               0 個のディレクトリ  15,026,593,792 バイトの空き領域

秘密鍵とCSRを見てみよう


秘密鍵

秘密鍵(newkey.pem)にはどんなことが書かれているのでしょうか。

C:\OpenSSL\bin>openssl rsa -in newkey.pem -text
Enter pass phrase for newkey.pem: <---/*秘密鍵を見るには、秘密鍵のパスフレーズが*/
                                      /*必要です。*/
Private-Key: (1024 bit)
modulus:
    00:a9:a4:8b:e9:99:11:ec:fb:27:4b:9f:4b:a1:3f:
    a9:8d:dd:1a:ff:cf:be:6c:86:cb:60:9a:b6:72:aa:
    c6:03:e9:b2:6e:8c:d6:77:1f:d9:9c:5d:2d:a7:c2:
    a1:99:b5:26:86:80:c0:b3:6a:86:f0:ae:c4:a8:ab:
    31:8c:67:6e:d0:dd:d1:d5:cb:c8:92:0d:f6:7e:45:
    16:af:fd:68:2c:0a:87:85:30:8c:9c:00:ad:2b:24:
    dd:34:9d:e8:24:ef:8e:2c:c5:05:d0:85:26:ff:78:
    48:6b:86:6a:e7:d7:d5:98:77:a8:f4:7c:8b:b9:46:
    5f:d4:59:65:0b:a5:ee:1a:bf
publicExponent: 65537 (0x10001)
privateExponent:
    3f:9e:1e:7e:06:d2:4b:1d:d0:99:b2:6e:49:55:37:
    7f:a4:f8:58:10:8f:27:e1:d0:e9:34:7b:d1:3a:ab:
    b1:91:f5:41:31:fd:c7:84:a1:35:db:57:a0:bf:03:
    9d:41:ea:e5:ab:e9:18:1f:8d:e5:3a:95:33:6f:a7:
    d0:30:85:c4:9f:b1:ba:a9:45:18:93:e3:a1:cc:8d:
    6f:1e:58:0d:59:94:72:51:60:3b:a7:80:02:77:31:
    0a:3c:45:be:f7:c7:3b:c6:22:d1:4d:61:5b:32:70:
    17:45:c6:a1:18:cd:dd:b5:35:79:68:a7:26:a3:09:
    d2:af:57:1b:95:64:bf:89
prime1:
    00:dc:18:1f:d0:70:0e:c9:b3:38:0f:03:9f:87:a7:
    c8:a8:90:14:3b:31:fa:47:6b:75:7c:f9:b1:8c:9f:
    8e:a9:70:e4:e4:42:04:7b:d1:54:93:f2:7c:f4:68:
    8d:3d:8f:d2:68:2a:0d:fd:b4:0d:a1:2d:47:e7:94:
    cf:06:89:cb:a5
prime2:
    00:c5:51:66:1e:d8:ca:56:3a:87:22:3d:50:e5:ac:
    19:be:61:b0:1f:d6:0d:b0:d8:06:d9:2c:51:2b:a3:
    07:5b:89:da:9b:95:9b:59:50:69:68:3b:ca:48:13:
    62:c3:b2:c6:39:f5:f8:f0:fa:52:82:f4:58:7f:40:
    a6:52:49:8f:93
exponent1:
    12:a8:a8:e9:ce:d6:32:1b:53:81:52:59:4f:f2:d5:
    7c:14:da:e2:39:d6:71:ff:96:32:46:28:db:37:1b:
    ad:19:b9:0d:f0:da:d8:74:62:ab:38:3f:87:a8:e5:
    70:76:a4:eb:d7:c4:df:e1:47:d6:86:34:36:59:d3:
    43:46:a3:51
exponent2:
    00:b7:d8:3d:b3:e3:fd:b2:15:da:2e:b6:be:97:1f:
    a0:e4:d7:94:08:35:a2:8f:f0:d7:80:a5:60:03:ae:
    64:7e:8f:94:d5:7d:b1:3e:a8:43:6d:d0:b7:8a:2c:
    35:cb:6c:d8:70:cc:93:63:c3:77:f9:77:bc:b4:e4:
    01:93:8d:e2:6d
coefficient:
    3c:29:89:43:6c:70:9f:ee:7e:95:bd:89:77:e2:d7:
    4f:68:c8:af:7c:58:73:e4:50:08:94:0b:44:6d:ce:
    fb:03:b4:09:d7:bb:54:30:74:2a:78:fd:4e:c2:2c:
    a4:39:36:22:b7:13:0f:05:38:a2:cf:c4:4c:ee:53:
    06:80:ae:a3
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCppIvpmRHs+ydLn0uhP6mN3Rr/z75shstgmrZyqsYD6bJujNZ3
H9mcXS2nwqGZtSaGgMCzaobwrsSoqzGMZ27Q3dHVy8iSDfZ+RRav/WgsCoeFMIyc
AK0rJN00negk744sxQXQhSb/eEhrhmrn19WYd6j0fIu5Rl/UWWULpe4avwIDAQAB
AoGAP54efgbSSx3QmbJuSVU3f6T4WBCPJ+HQ6TR70TqrsZH1QTH9x4ShNdtXoL8D
nUHq5avpGB+N5TqVM2+n0DCFxJ+xuqlFGJPjocyNbx5YDVmUclFgO6eAAncxCjxF
vvfHO8Yi0U1hWzJwF0XGoRjN3bU1eWinJqMJ0q9XG5Vkv4kCQQDcGB/QcA7JszgP
A5+Hp8iokBQ7MfpHa3V8+bGMn46pcOTkQgR70VST8nz0aI09j9JoKg39tA2hLUfn
lM8GiculAkEAxVFmHtjKVjqHIj1Q5awZvmGwH9YNsNgG2SxRK6MHW4nam5WbWVBp
aDvKSBNiw7LGOfX48PpSgvRYf0CmUkmPkwJAEqio6c7WMhtTgVJZT/LVfBTa4jnW
cf+WMkYo2zcbrRm5DfDa2HRiqzg/h6jlcHak69fE3+FH1oY0NlnTQ0ajUQJBALfY
PbPj/bIV2i62vpcfoOTXlAg1oo/w14ClYAOuZH6PlNV9sT6oQ23Qt4osNcts2HDM
k2PDd/l3vLTkAZON4m0CQDwpiUNscJ/ufpW9iXfi109oyK98WHPkUAiUC0RtzvsD
tAnXu1QwdCp4/U7CLKQ5NiK3Ew8FOKLPxEzuUwaArqM=
-----END RSA PRIVATE KEY-----

CSR

CSR(newreq.pem)にはどんなことが書かれているのでしょうか。

C:\OpenSSL\bin>openssl req -in newreq.pem -text
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=JP, ST=osaka, L=toyonaka, O=MyUniv, CN=www.myuniv.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:a9:a4:8b:e9:99:11:ec:fb:27:4b:9f:4b:a1:3f:
                    a9:8d:dd:1a:ff:cf:be:6c:86:cb:60:9a:b6:72:aa:
                    c6:03:e9:b2:6e:8c:d6:77:1f:d9:9c:5d:2d:a7:c2:
                    a1:99:b5:26:86:80:c0:b3:6a:86:f0:ae:c4:a8:ab:
                    31:8c:67:6e:d0:dd:d1:d5:cb:c8:92:0d:f6:7e:45:
                    16:af:fd:68:2c:0a:87:85:30:8c:9c:00:ad:2b:24:
                    dd:34:9d:e8:24:ef:8e:2c:c5:05:d0:85:26:ff:78:
                    48:6b:86:6a:e7:d7:d5:98:77:a8:f4:7c:8b:b9:46:
                    5f:d4:59:65:0b:a5:ee:1a:bf
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha1WithRSAEncryption
        1e:f4:40:6e:ca:bd:2e:e1:fe:19:d7:cf:be:b6:06:1a:6b:8c:
        5e:54:81:77:49:f7:55:1e:fd:3f:7b:0e:28:63:c6:15:2c:19:
        b7:bd:20:f6:f4:b2:6d:d5:9c:e0:42:c5:6f:75:e6:d6:b7:21:
        b1:91:09:c9:42:d8:92:82:d4:38:ce:ae:98:aa:55:14:3f:1e:
        43:c6:7b:af:27:be:07:f2:d4:3c:23:97:4e:48:d9:cb:15:a4:
        7a:e9:75:c2:13:78:80:60:0b:39:2e:64:cd:cd:e8:c0:e1:3b:
        fc:45:ac:a6:bd:43:5f:09:6e:58:2f:f0:d7:60:b4:d0:a1:4c:
        2c:fb
-----BEGIN CERTIFICATE REQUEST-----
MIIBmjCCAQMCAQAwWjELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBW9zYWthMREwDwYD
VQQHEwh0b3lvbmFrYTEPMA0GA1UEChMGTXlVbml2MRcwFQYDVQQDEw53d3cubXl1
bml2LmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAqaSL6ZkR7PsnS59L
oT+pjd0a/8++bIbLYJq2cqrGA+mybozWdx/ZnF0tp8KhmbUmhoDAs2qG8K7EqKsx
jGdu0N3R1cvIkg32fkUWr/1oLAqHhTCMnACtKyTdNJ3oJO+OLMUF0IUm/3hIa4Zq
59fVmHeo9HyLuUZf1FllC6XuGr8CAwEAAaAAMA0GCSqGSIb3DQEBBQUAA4GBAB70
QG7KvS7h/hnXz762BhprjF5UgXdJ91Ue/T97DihjxhUsGbe9IPb0sm3VnOBCxW91
5ta3IbGRCclC2JKC1DjOrpiqVRQ/HkPGe68nvgfy1Dwjl05I2csVpHrpdcITeIBg
CzkuZM3N6MDhO/xFrKa9Q18Jblgv8NdgtNChTCz7
-----END CERTIFICATE REQUEST-----