改版履歴 |
版数 | 日付 | 内容 | 担当 |
V.1.1 | 2014/12/22 | 初版 | NII |
V.1.2 | 2015/5/25 | 中間CA証明書のファイル名を修正 | NII |
V.1.3 | 2015/12/11 | 誤記修正 | NII |
V.2.0 | 2018/2/26 | SHA1の記載内容の削除 | NII |
V.2.1 | 2018/3/26 | CT対応版の中間CA証明書について説明を追加 | NII |
V.2.2 | 2018/7/9 | ECDSA対応版について説明を追加 事前準備の記述の修正 DNのルールの修正 | NII |
V.2.4 | 2019/4/22 | ECC認証局 中間CA証明書の名称を変更 | NII |
V.2.5 | 2019/6/10 | DNのルール(Locality Name)の修正 | NII |
V.2.6 | 2020/4/13 | 中間CA証明書のファイル名を修正 DNのルール(State or Province Name、Locality Name)の修正 | NII |
V.2.7 | 2020/7/15 | DNのルール、TSVファイル形式のSTおよびLの値の説明、リンクの変更 | NII |
V.2.8 | 2020/8/25 | 中間CA証明書の記載内容を修正 | NII |
V.2.9 | 2020/12/22 | 中間CA証明書を修正 サーバー証明書L、STを必須に修正 サーバー証明書OUの利用条件を修正 | NII |
V2.10 | 2022/9/22 | サーバー証明書OU廃止について修正 | NII |
目次
1. Tomcat(JavaKeytool)によるサーバ証明書の利用
1-1. 前提条件
1-2. 事前準備
1-3. 鍵ペアの生成とCSRの作成
1-3-1. キーストアの生成
1-3-2. CSRの生成
1-4. 証明書の申請から取得まで
1-5. 証明書のインストール
1-5-1. 事前準備
1-5-2. ルートCA証明書のインストール
1-5-3. 中間CA証明書のインストール
1-5-4. サーバ証明書のインストール
1-6. Tomcatの設定変更
1-7. 証明書の更新
1-8. 起動確認
...
事前準備 |
- キーストアファイル名:<server_yyyymmdd.keystore>(「1-3-1、1-3-2、1-5-2、1-5-3、1-5-4」で使用)
例)server_20141226.keystore
- サーバ DN(※サーバDNについては、本サービス証明書ポリシまたは、下記DNのルールをご確認ください):<サーバDN>(「1-3-1」で使用)
例)CN=www.nii.ac.jp, OU=Cyber Science Infrastructure Development Department, O=National Institute of Informatics, L=Chiyoda-ku,ST=Tokyo, C=JP
- 鍵ペアalias名:<tomcat>(「1-3-1、1-3-2、1-5-4」で使用)
例)tomcat
- 鍵ストア・パスワード:<keystore_pass>(「1-3-1、1-3-2、1-5-2、1-5-3、1-5-4」で使用)
※Tomcat7系では、鍵ストア・パスワードと鍵のパスワードを同一にする仕様となっているため、changeit以外を設定ください。
- 鍵のパスワード:<key_pass>(「1-3-1 キーストアの生成」で使用)
※[4.鍵ストア・パスワード]にも記載のとおり、Tomcat7系では、鍵ストア・パスワードと鍵のパスワードを同一にする仕様となっているため、changeit以外で鍵ストア・パスワードと同じパスワードを設定ください。
- CSRファイル名:<servername.csr>(「1-3-2 CSRの生成」で使用)
|
...
STとして指定できる値は下記リンクを参照してください。機関ごとに固定となります。
UPKI証明書 主体者DNにおける ST および L の値一覧
...
Lとして指定できる値は下記リンクを参照してください。機関ごとに固定となります。
UPKI証明書 主体者DNにおける ST および L の値一覧
...
鍵ペアの作成 |
キーストアを作成するため、以下のコマンドを実施してください。-dnameの引数に関しましては、「1-2.事前準備」の「DNルール」に従いDN情報を入力してください。 RSA鍵の場合 $keytool -genkey -alias <tomcat> -keyalg RSA -keysize 2048 -keystore <server_yyyymmdd.keystore> -dname "<サーバDN> " 鍵ストア・パスワードを入力してください:<keystore_pass> ←鍵のパスワードを入力。 <tomcat>の鍵パスワードを入力してください (鍵ストア・パスワードと同じ場合にはEnterを押してください):←鍵ストア・パスワードと同じパスワードにする必要があるため[Enter]を入力。 |
ECDSA鍵の場合 $keytool -genkey -alias <tomcat> -keyalg EC -keysize 384 -keystore <server_yyyymmdd.keystore> -dname "<サーバDN> " 鍵ストア・パスワードを入力してください:<keystore_pass> ←鍵のパスワードを入力。 <tomcat>の鍵パスワードを入力してください (鍵ストア・パスワードと同じ場合にはEnterを押してください):←鍵ストア・パスワードと同じパスワードにする必要があるため[Enter]を入力。 |
重要:更新時、キーストアファイルを上書きすることの無いように、キーストアファイルに日付等のファイル名をつけることを推奨します。
作成したキーストアの情報は以下のコマンドで確認することができます。 $keytool -list -v -keystore < server_yyyymmdd.keystore > キーストアのパスワードを入力してください: <keystore_pass> ←鍵のパスワードを入力。
鍵ストア・タイプ: JKS ・・・ 別名: tomcat ・・・ 所有者: CN=www.nii.ac.jp, OU=UPKI, O=National Institute of Informatics, L=Chiyoda-ku, ST=Tokyo, C=JP 発行者: CN=www.nii.ac.jp, OU=UPKI, O=National Institute of Informatics, L=Chiyoda-ku, ST=Tokyo, C=JP |
- 作成したキーストアファイルを保存します。バックアップは外部媒体等に保存し、安全な場所に保管してください。
キーストアファイルの中の私有鍵を利用すれば、お使いのウェブ・サーバがSSL/TLS で保護して送受信したデータを、解読することができてしまいます。 従って保存するキーストアファイルへのアクセス権は利用管理者自身とSSL/TLS サーバのプロセス等必要最小限になるよう設定してください。 またバックアップを保存した外部媒体等も利用管理者のみまたは同じ権限のある方のみ利用できる場所へ保管してください。 また、キーストアファイル作成時のパスワードの管理も、確実に行ってください。キーストアファイルの紛失、パスワード忘れ等が発生した場合、証明書のインストールが行えなくなります。 この場合、新たに証明書を申請しなおしていただくことになりますので、ご注意ください。
|
...
CSRの作成 |
次のコマンドを入力し、CSRの作成を開始してください。パスフレーズの入力が求められますので、「1-3-1 キーストアの生成」の手順1で作成したキーストアのパスワードを入力してください。 RSA鍵の場合 コマンドでは、署名アルゴリズムSHA2でCSRを作成し、「servername.csr」(ファイル名は任意)というファイル名で保存することを示しています。 $keytool -certreq -sigalg SHA256withRSA -alias <tomcat> -file <servername.csr> -keystore <server_yyyymmdd.keystore> 鍵ストア・パスワードを入力してください:<keystore_pass> |
「-sigalg SHA256withRSA」:署名アルゴリズムを示すオプション。 署名アルゴリズムSHA1でCSRを作成する場合は、「-sigalg SHA1withRSA」に置き換えてください。
ECDSA鍵の場合 コマンドでは、署名アルゴリズムecdsa-with-SHA256でCSRを作成し、「servername.csr」(ファイル名は任意)というファイル名で保存することを示しています。
$keytool -certreq -sigalg SHA256withECDSA -alias <tomcat> -file <servername.csr> -keystore <server_yyyymmdd.keystore> 鍵ストア・パスワードを入力してください:<keystore_pass> |
「-sigalg SHA256withECDSA」:署名アルゴリズムを示すオプション。 署名アルゴリズムecdsa-with-SHA384でCSRを作成する場合は、「-sigalg SHA384withECDSA」に置き換えてください。
パスワードの入力が成功するとCSR が生成され、要求された情報の入力が完了すると CSR が生成され、servername.csrに保存されます。なお、このファイルもバックアップを保存して証明書を受領するまでは別途保管することをお勧めします。 ----BEGIN CERTIFICATE REQUEST---- MIIBhDCB7gIBADBFMQswCQYDVQQGEwJKUDEQMA4GA1UEBxMHQWNhZGVtZTEMMAoG 例 Um0E3vq8Ajg= ----END CERTIFICATE REQUEST---- |
以下のコマンドを入力することにより、CSRの内容を確認することができます。 RSA鍵で作成したCSRの場合 $ openssl req -noout -text -in servername.csr Certificate Request: Data: Version: 0 (0x0) Subject: C=JP, ST=Tokyo, L=Chiyoda-ku, O=National Institute of Informatics, OU=Cyber Science Infrastructure Development Department, CN=www.nii.ac.jp ←CSR生成時に入力したDNと一致していることを確認してください。 Subject Public Key Info: Public Key Algorithm: rsaEncryption Public Key: (2048 bit) ←鍵長が2048bitであることを確認してください。 Modulus: 00:c9:0e:99:5c:8a:4a:e3:b2:e2:0d:3d:60:4d:30: : 例 : ca:2e:56:f7:66:bd:01:44:ea:f3:ca:d2:f6:e0:5e: 6c:57:4b:65:e4:e7:f7:ca:dd Exponent: 65537 (0x10001) Attributes: a0:00 Signature Algorithm: sha256WithRSAEncryption← CSR生成時に指定した署名アルゴリズムで あることを確認してください。 署名アルゴリズムにSHA1を指定した場合は「sha1WithRSAEncryption」と表示されます。
88:44:e5:27:06:02:ec:85:6c:29:6a:0f:a3:92:87:4e:e2:f1: : 例 |
ECDSA鍵で作成したCSRの場合
$ openssl req -noout -text -in servername.csr Certificate Request: Data: Version: 0 (0x0) Subject: C=JP, ST=Tokyo, L=Chiyoda-ku, O=National Institute of Informatics, OU=Cyber Science Infrastructure Development Department, CN=www.nii.ac.jp ←CSR生成時に入力したDNと一致していることを確認してください。 Subject Public Key Info: Public Key Algorithm: id-ecPublicKey Public Key: (384 bit) ←鍵長が384bitであることを確認してください。 Modulus: 00:c9:0e:99:5c:8a:4a:e3:b2:e2:0d:3d:60:4d:30: : 例 : ca:2e:56:f7:66:bd:01:44:ea:f3:ca:d2:f6:e0:5e: 6c:57:4b:65:e4:e7:f7:ca:dd ASN1 OID: secp384r1 NIST CURVE: P-384 Attributes: Requested Extensions: X509v3 Subject Key Identifier: 98:5A:D9:7B:3C:5D:4E:C1:62:8C:5F:2D:89:1A:B3:DC:F7:6C:1C:E2 Signature Algorithm: ecdsa-with-SHA256← CSR生成時に指定した署名アルゴリズムで あることを確認してください。 署名アルゴリズムにSHA384withECDSAを指定した場合は「ecdsa-with-SHA384」と表示されます。
88:44:e5:27:06:02:ec:85:6c:29:6a:0f:a3:92:87:4e:e2:f1: : 例 |
|
...