SSL証明書を申し込む際に作成する「CSR」とは何か?

先日からSSLの技術について記事にしていますが、本日は「CSR」を取り上げます。

CSRとは「Certificate Signing Request」の略で、日本語に訳すと「証明書署名要求・証明書署名リクエスト」になります。

※署名(しょめい)とは、自分の名前を書くことで、本人であることや自分の責任であることを明らかにすることという意味です。

先日、本サイトを「https://~」のように「https」化する手順を記載しました。

その際に、エックスサーバーの設定で以下のような画面がありました。

「CSR情報(SSL証明書新生情報)を入力する」にチェックを入れると出てくる設定画面です。

※この画面はデフォルトの状態です。

CSRという用語やCSRの意味など、一通りSSLについて知らないと、

  • どのように情報を入力すればいいのか?
  • この情報は何に使われるのか?
  • どうやってCSRを作成するのか?

不明だと思います。

それに不安も感じると思います。

そこで今回は詳しくCSRについて取り上げてみます。

CSRとは何か?

CSRとは、リクエスト(要求・申請・申し込み・請求)です。

CSRとは、認証局に提出するリクエストです。

CSRとは、サーバー証明書を取得する際に、認証局に提出するリクエストです。

「サーバー証明書を作ってください」と要望を出しています。

CSRはどのような時に使うのか?

CSRは、証明書を作成する時に利用します。

証明書に「自分の会社名」や「会社の住所」などを盛り込むために利用します。

再度エックスサーバーの画面を見てみましょう。

「住所」や「組織」や「部署」を記載する項目があります。

たとえば、ここに「自分の会社名」や「会社の住所」を入力すると、CSRに「自分の会社名」や「会社の住所」の情報が含まれ、認証局が作成する証明書には「自分の会社名」や「会社の住所」が含まれた状態で発行されます。

その証明書を見た人は、「会社名」や「会社の住所」が信頼できる情報と受け取れます。

クレジットカードの情報や個人情報を入力しても犯罪などに悪用されないと思えます。

 

証明書を作る時にCSRを作って認証局に提出する

もう一度言葉を変えて説明します。

ある日、SSL証明書が必要になりました。

理由は、ネットショップを立ち上げてお客様の個人情報やクレジットカード情報など機密情報を暗号化して外部に漏れなくするためです。

また、自分自身、サーバー自身がフィッシングサイトではなく、ちゃんとしたサイトであることを証明するためです。

SSL証明書を作るためには、自分のレンタルサーバーの「公開鍵」「秘密鍵」が必要になります。

SSLの基本的な説明はこちら↓

【レンタルサーバー初心者向け】 SSL技術を分かりやすく解説してみました

そして認証局に証明してもらいたい項目(会社名とか住所とか)と「公開鍵」でCSRを作成します。

そして作成したCSRを認証局に提出します。

認証局は受け取ったCSRを基に証明書を作成します。

発行されたSSL証明書にはちゃんと「会社名」とか「住所」などの情報が含まれています。

CSRを実際にコマンドで作ってみた

実際にCSRを作ってみましょう。

こんな設定で作ります。

コモンネームssl.go-journey.club
confディレクトリ/etc/httpd/conf/
秘密鍵の保存先ディレクトリ/etc/httpd/conf/ssl.key
CSRの保存先ディレクトリ/etc/httpd/conf/ssl.csr
秘密鍵のファイル名ssl.go-journey.club.2017.key
CSRのファイル名ssl.go-journey.club.2017.csr
鍵長2048bit

$ sudo su -

# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

# cd /etc/httpd/conf

# mkdir ssl.key

# mkdir ssl.csr

# openssl genrsa -des3 -out ./ssl.key/ssl.go-journey.club.2017.key 2048
Generating RSA private key, 2048 bit long modulus
........+++
.........................................................................+++
e is 65537 (0x10001)
Enter pass phrase for ./ssl.key/ssl.go-journey.club.2017.key:
Verifying - Enter pass phrase for ./ssl.key/ssl.go-journey.club.2017.key:

# openssl req -new -key ./ssl.key/ssl.go-journey.club.2017.key -out ./ssl.csr/ssl.go-journey.club.2017.csr
Enter pass phrase for ./ssl.key/ssl.go-journey.club.2017.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) [XX]:JP
State or Province Name (full name) []:Osaka
Locality Name (eg, city) [Default City]:Osaka-shi
Organization Name (eg, company) [Default Company Ltd]:MyCompanyName
Organizational Unit Name (eg, section) []:Sales
Common Name (eg, your name or your server's hostname) []:go-journey.club
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

# ls
httpd.conf  magic  ssl.csr  ssl.key

# cd ssl.csr/

# ls
ssl.go-journey.club.2017.csr

# cat ssl.go-journey.club.2017.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICuDCCAaACAQAwczELMAkGA1UEBhMCSlAxDjAMBgNVBAgMBU9zYWthMRIwEAYD
VQQHDAlPc2FrYS1zaGkxFjAUBgNVBAoMDU15Q29tcGFueU5hbWUxDjAMBgNVBAsM
BVNhbGVzMRgwFgYDVQQDDA9nby1qb3VybmV5LmNsdWIwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQCiYQ6k1oL6HEFDZpOXnESRwm4BSNI19Adeuq6VcSm3
a4olj4BHsjgjz+WvvUxlTaxIFJ7gpYaEZRBhumaSx/TwjGQwsmetg+FErrc0EY3H
HhH54EpuiXLLMTvmZtAJHfbWfDY2HfAwTG4dusWLVGH06BCb8jjgG23IDJjDV29/
biGB9ETl4HWY53k96ZtkB2G2FoKQtqlS4dPrwhfBFkpMd8O7NBAACBJsXnjAs9Ba
AA/pAzHbsd9T2w09Uf4rfDWDKWgD6AcC7zYlYw6Iy5B2bA3SFVKVm0deBiEs00J7
SCm7tvbfzeTbCzAlYX4+UhK9qOZWhJY63L4h+2PgBThVAgMBAAGgADANBgkqhkiG
9w0BAQsFAAOCAQEAP/qNOXe/1XYXsKffxaMQIcgXY569uOFOCMNkFPLbUxlo0qMK
m6b1VwDLcEYe9mPC2x5+uJRLYPPagB2+wfahZGgxbAM7jxLluC0Uwd6W83+VBIdM
VsbuZRfu7b1FAkYlMTfx8FVjCZzqgaUnT9uAvMkvg1MjfyHhbjDUb4U6JEfwyC5e
KgeiHdvtlOXhTmAAVl6Yj7W1F0OflsHySjWLR1dzCVbDIV8HfCwZjiVos+jCDynV
CZ6h3F1lf4HPQ5cphMlWbEmHryJcBWc0a8QLlg6QnyxevZWaQLRyQLnx7fybIhk5
+D7OOHT22jyosWI1EG/VzkY3TjCcjT4EYk4mWw==
-----END CERTIFICATE REQUEST-----

 

これでCSRの作成完了です。

この最後のめちゃくちゃな文字列の中に住所や会社名が入っています。

本当に入っているかどうか確認してみましょう。

# openssl req -text -noout -in ssl.go-journey.club.2017.csr
Certificate Request:
    Data:
        Version: 0 (0x0)
        Subject: C=JP, ST=Osaka, L=Osaka-shi, O=MyCompanyName, OU=Sales, CN=go-journey.club
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:a2:61:0e:a4:d6:82:fa:1c:41:43:66:93:97:9c:
                    44:91:c2:6e:01:48:d2:35:f4:07:5e:ba:ae:95:71:
                    29:b7:6b:8a:25:8f:80:47:b2:38:23:cf:e5:af:bd:
                    4c:65:4d:ac:48:14:9e:e0:a5:86:84:65:10:61:ba:
                    66:92:c7:f4:f0:8c:64:30:b2:67:ad:83:e1:44:ae:
                    b7:34:11:8d:c7:1e:11:f9:e0:4a:6e:89:72:cb:31:
                    3b:e6:66:d0:09:1d:f6:d6:7c:36:36:1d:f0:30:4c:
                    6e:1d:ba:c5:8b:54:61:f4:e8:10:9b:f2:38:e0:1b:
                    6d:c8:0c:98:c3:57:6f:7f:6e:21:81:f4:44:e5:e0:
                    75:98:e7:79:3d:e9:9b:64:07:61:b6:16:82:90:b6:
                    a9:52:e1:d3:eb:c2:17:c1:16:4a:4c:77:c3:bb:34:
                    10:00:08:12:6c:5e:78:c0:b3:d0:5a:00:0f:e9:03:
                    31:db:b1:df:53:db:0d:3d:51:fe:2b:7c:35:83:29:
                    68:03:e8:07:02:ef:36:25:63:0e:88:cb:90:76:6c:
                    0d:d2:15:52:95:9b:47:5e:06:21:2c:d3:42:7b:48:
                    29:bb:b6:f6:df:cd:e4:db:0b:30:25:61:7e:3e:52:
                    12:bd:a8:e6:56:84:96:3a:dc:be:21:fb:63:e0:05:
                    38:55
                Exponent: 65537 (0x10001)
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         3f:fa:8d:39:77:bf:d5:76:17:b0:a7:df:c5:a3:10:21:c8:17:
         63:9e:bd:b8:e1:4e:08:c3:64:14:f2:db:53:19:68:d2:a3:0a:
         9b:a6:f5:57:00:cb:70:46:1e:f6:63:c2:db:1e:7e:b8:94:4b:
         60:f3:da:80:1d:be:c1:f6:a1:64:68:31:6c:03:3b:8f:12:e5:
         b8:2d:14:c1:de:96:f3:7f:95:04:87:4c:56:c6:ee:65:17:ee:
         ed:bd:45:02:46:25:31:37:f1:f0:55:63:09:9c:ea:81:a5:27:
         4f:db:80:bc:c9:2f:83:53:23:7f:21:e1:6e:30:d4:6f:85:3a:
         24:47:f0:c8:2e:5e:2a:07:a2:1d:db:ed:94:e5:e1:4e:60:00:
         56:5e:98:8f:b5:b5:17:43:9f:96:c1:f2:4a:35:8b:47:57:73:
         09:56:c3:21:5f:07:7c:2c:19:8e:25:68:b3:e8:c2:0f:29:d5:
         09:9e:a1:dc:5d:65:7f:81:cf:43:97:29:84:c9:56:6c:49:87:
         af:22:5c:05:67:34:6b:c4:0b:96:0e:90:9f:2c:5e:bd:95:9a:
         40:b4:72:40:b9:f1:ed:fc:9b:22:19:39:f8:3e:ce:38:74:f6:
         da:3c:a8:b1:62:35:10:6f:d5:ce:46:37:4e:30:9c:8d:3e:04:
         62:4e:26:5b

ちゃんと情報がCSRの中に入っていることが確認できました。

これを認証局にCSRとして提出すると、認証局が「証明書」を発行してくれます。

 

以上が「CSR」についての説明になります。

まだまだ断片的だと思うので今後もSSLに関しては分かりやすく説明したいと思います。

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。