OpenSSLのコマンドオプション「-subj」(サブジェクト)オプションについて解説する。
環境
Windows10
使用したGit bashのバージョンは「git version 2.40.0.windows.1」である。
B-6@B-6-PC MINGW64 ~
$ git -v
git version 2.40.0.windows.1
CSR(証明書署名要求)を生成するときに、「-subj」(サブジェクト)オプションを使用するとsubject(サブジェクト)情報(=ディスティングリッシュネーム(Distinguished Name:DN))を直接指定することができる。つまり、対話型でサブジェクト情報を入力しなくてよくなる。
subject(サブジェクト)情報(=ディスティングリッシュネーム(Distinguished Name:DN))
C:Country Name | 国名,国を示す2文字のISO略語 |
ST:State or Province Name | 組織が置かれている都道府県 |
L:Locality Name | 組織が置かれている市区町村 |
O:Organization Name | 組織の法人名(正式英文名称) |
OU:Organizational Unit Name (任意) | 組織での部署名 ※組織や証明書の発行者によっては必須とする場合がある。 |
CN:Common Name | サーバのFQDN,あるいはIPアドレス URLが「https://www.△△△.co.jp/」の サーバ証明書を申請する場合、 CSRのCommon Nameは「www.△△△.co.jp.」 と指定しなければなりません。 |
emailAddress:Email Address (任意) | 担当者のメールアドレス ※組織や証明書の発行者によっては必須とする場合がある。 |
CSRを生成するコマンド「openssl req -new -key server-key.pem -out server-csr.pem」に「-subj」(サブジェクト)オプションを付けたコメンドを実行する。
サブジェクト情報に次の値を設定する。
C(Country):国名,国を示す2文字のISO略語 C=JP
ST(State):組織が置かれている都道府県 ST=Osaka
L(City or Locality):組織が置かれている市区町村 L=Osaka-shi
O(Organization):組織の法人名(正式英文名称) O=Sample
OU(Organization Unit):組織での部署名 OU=Dev1
CN(Common Name):サーバのFQDN,あるいはIPアドレス CN=localhost
emailAddress(Email Address ):担当者のメールアドレス emailAddress=admin@example.com
B-6@B-6-PC MINGW64 ~/test
$ openssl req -new -key server-key.pem -out server-csr.pem -subj "//C=JP\ST=Osaka\L=Osaka-shi\O=Sample\OU=Dev1\CN=localhost\emailAddress=admin@example.com"
コマンド「openssl req -in server-csr.pem -text -noout」でCSRの中身を見ることができる。
subject(サブジェクト)情報「Subject: C = JP, ST = Osaka, L = Osaka-shi, O = Sample, OU = Dev1, CN = localhost, emailAddress = admin@example.com」が表示される。
B-6@B-6-PC MINGW64 ~/test
$ openssl req -in server-csr.pem -text -noout
Certificate Request:
Data:
Version: 1 (0x0)
Subject: C = JP, ST = Osaka, L = Osaka-shi, O = Sample, OU = Dev1, CN = localhost, emailAddress = admin@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
00:c4:9d:9c:03:80:fd:6e:b8:3a:d6:73:88:f1:ce:
53:4c:48:e9:23:99:f9:58:4b:72:b8:9a:4e:87:a7:
f3:c5:ba:6d:7a:4b:70:88:c9:b8:63:ab:c3:9d:e6:
45:56:d5:17:6d:5f:de:14:b8:b9:a9:f0:35:19:f1:
ff:c0:59:de:a4:34:83:a0:7b:ce:48:28:e0:12:c1:
b5:a3:98:dd:3c:75:79:d1:07:30:90:09:53:3a:8e:
5d:60:74:97:02:e8:02:ae:46:69:8a:37:dc:91:5c:
55:f9:91:52:46:04:1f:47:99:09:41:e6:ca:00:92:
1d:a9:15:99:29:36:f5:98:a6:d5:8b:5d:5b:cc:09:
49:6d:8f:a6:92:6d:f2:ec:93:f5:f4:b8:c6:fd:73:
ed:6a:89:05:c8:20:86:42:e7:6e:5a:ee:dd:16:a1:
d0:e2:ec:c5:3d:b4:e4:ce:97:a6:98:28:13:0c:90:
a5:bd:59:32:f8:93:eb:d0:52:c5:b2:e9:ad:5c:9c:
c2:f9:b4:45:c5:26:11:c4:e1:4a:ad:3b:ed:c2:23:
7c:4d:f6:a7:aa:64:82:81:fd:ce:27:6e:45:aa:12:
02:68:27:cf:6f:dd:8a:eb:85:f1:e4:19:ff:8d:ec:
36:e6:82:37:bf:2f:67:4e:d8:06:15:ed:cf:a6:95:
da:25
Exponent: 65537 (0x10001)
Attributes:
a0:00
Requested Extensions:
Signature Algorithm: sha256WithRSAEncryption
6b:9b:28:fa:2a:ac:26:d3:4f:2d:66:7e:24:8a:ec:6f:cd:b9:
a8:5d:3e:2c:5b:eb:7a:71:e5:65:5d:6a:93:e8:97:e8:bf:0d:
12:81:6b:19:9c:7b:80:6a:33:7c:3c:bd:d8:1f:37:23:35:c5:
ee:06:a6:a3:7f:9c:cd:4c:c7:b9:03:05:3f:32:5f:71:3e:82:
9a:3e:59:bd:74:4a:49:ee:38:4b:e2:97:9e:55:5f:e6:c9:c2:
ea:39:26:46:d5:7b:d4:98:f4:77:d3:67:4d:ee:02:c8:09:e6:
a4:8c:c3:ab:7c:32:eb:ed:7a:20:7c:30:81:48:45:7e:c6:49:
a7:00:1c:4b:a9:eb:1f:ba:9b:8f:44:1f:eb:b3:4f:4d:e3:d1:
f1:8c:1c:a9:c1:6e:aa:e1:db:88:b8:b6:b8:c1:79:68:d9:2b:
7e:1d:69:b0:7e:83:4c:25:41:6e:52:b9:10:77:6e:44:3f:bf:
cc:f4:c0:02:e9:ae:c2:a3:1b:74:0c:76:19:fa:a3:c3:36:e4:
3c:fb:87:63:23:30:c4:e3:90:4b:3c:34:a4:39:f2:20:53:d2:
8e:b4:2c:1c:6b:b5:15:55:5a:4c:10:2f:17:98:4d:ec:c0:79:
c7:22:78:cf:e5:f7:ba:b6:96:c1:02:df:64:3c:0d:0e:42:bd:
66:ed:13:19
B-6@B-6-PC MINGW64 ~/test
$