セコムのサーバー証明書

鍵ペア/CSRの生成Tomcat 新規/更新用

次の手順にしたがい、鍵ペアとCSRを生成してください。
このページでは、Unix環境でTomcat 4~10でJava 6~18のJSSEを使用していることを前提に説明しています。 CSR 生成時は、TLS/SSLのサーバーをホストしているコンピュータに管理者として ログインしていることを確認してください。

注意事項

本手順ではパスワードを入力する手順がありますが、 パスワード入力の際、 エコーバックで入力したパスワードの表示される古い版があります。 パスワードの漏洩のないようにご注意ください。
また、深刻な脆弱性も知られていますので、TomcatおよびJavaは、最新版に更新しておくことをおすすめします。

≪Tomcat 4をご利用の場合≫
Tomcat 4ではPureTLSを優先します。JSSEをご使用の場合は、以下のどれかでご対応ください。

  • ・Tomcatをアップグレードする
  • ・server.xmlファイルでFactory要素のSSLImplementation属性の値を 「org.apache.tomcat.util.net.JSSEImplementation」 と明示する
  • ・PureTLSをアンインストールする

≪Windows版をご利用の場合≫
実際の表記や用語が異なりますので、 読み替えて行ってください

環境 Unix DOS(Windows)
変数置換 ${変数名} %変数名%
パス名 /ディレクトリー名/ファイル名 ドライブ名:¥ディレクトリー名¥ファイル名
プロンプト #や$ ドライブ名>
拡張子 sh bat
コマンド・インタープリタ シェル コマンド プロンプト

更新時も、必ず新たに鍵ペアおよびCSRを作成してください。

1.鍵ペアの生成

作業の前にJavaのベンダーや系列を確認してください。鍵生成時と実行時とでJavaのベンダーや系列が異なると、鍵ストア・ファイルのうまく読めないことがあります。

1-1
鍵ストアと鍵ペアの生成

鍵ストアや鍵ペアの生成には、 keytoolというコマンドを使用して行います。

※keytoolのインストール箇所は、 ${JAVA_HOME}/binディレクトリー です。

実行例:

${JAVA_HOME}

Javaを導入したディレクトリー


鍵ペアを生成するためのコマンドを入力します。OU (Organizational Unit) が発行先の識別名で使用禁止になったため、弊社はCSRの識別名からOUを削除し、証明書を発行します。鍵ペアの生成で、OUは、含めても、外してもかまいません。

現在ご利用中の鍵ペアがある場合は、上書きしないようご注意ください。

実行例:

$ keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore /your/keystore/filename

実行例:

$ keytool -genkey -alias tomcat -keyalg RSA -keysize 2048 -keystore /your/keystore/filename -dname "CN=www.example.jp, O=SECOM Trust Systems CO.¥,LTD., L=Mitaka shi, ST=Tokyo to, C=JP"

※「-dname」 の後には、サーバー識別名 (DN)を指定します。
ここに指定する値が 「,」 文字を含む場合、「¥,」 のように入力してください。
シェルによっては、
 「"」 文字を 「'」 文字に変える
 「¥¥」 のように重ねて指定する
場合があります。 シェルの仕様詳細はマニュアルなどをご確認ください。
また、サーバー識別名に指定する値については、手順1-3.のプロンプトの説明を参照してください。

tomcat」:
生成する鍵ペア名
Tomcat 6以降の場合は、「tomcat」以外の鍵ペア名をつけることも可能です。

/your/keystore/filename」:
生成する鍵ストアファイル名(ファイル名は任意)


1-2
鍵ストアのパスワード設定

プロンプトが表示されますので、鍵ストアに設定するパスワードを入力してください。

実行例:

Enter keystore password: changeit

同じパスワードを再入力してください。

実行例:

Re-enter new password: changeit


1-3
サーバー識別名 (DN) 情報の入力

証明書内に組み込むサーバー識別名 (DN) 情報を入力します。

入力には以下の点にご注意ください。

  • ・64文字以内の半角文字で入力してください
  • ・識別名に使用できる文字は、算用数字、アルファベット、空白、アポストロフィー (')、コンマ (,)、ハイフン (-)、ピリオド (.)、コロン (:)、等号 (=) です
  • ・「&」が含まれる場合は、半角英字の and 等に置き換えてください
  • ・ペースのみ、連続したスペースの入力は控えてください。スペースのみや連続したスペースの入力項目がある場合、証明書が発行されません
  • ・「,」が含まれる場合も ここではそのまま入力できます (「\」を前置きするのは、コマンド行の引数としてサーバー識別名を指定する場合です)

■各項目について

・your first and last name(識別名の「CN」)
コモン・ネームになります。
例)TLS/SSL通信を行うサイトが www.example.jp の場合「www.example.jp

※注意点
コモン・ネームに以下を使用することはできません。

  • ・プロトコル特定子 (http://)
  • ・IPアドレスやポート番号
  • ・パス名
  • ・「*」 や 「?」 のワイルドカード文字

コモン・ネームは、TLS/SSL通信を行うサイトのFQDN (Fully Qualified Domain Name) と同一でなければなりません。証明書に登録するコモン・ネームとFQDNが一致しない場合、ブラウザがサイトへの安全な接続を拒否する場合があります。

例えば、 コモン・ネームを 「example.jp」 とし証明書を発行した場合、<https://www.example.jp/> でアクセスすると、コモン・ネーム (example.jp) とFQDN (www.example.jp) が一致しないため、ブラウザでは警告が表示されます。

・the name of your organizational unit(省略してください)
Enterキーを押してください。既定のOUが指定されます。
弊社はCSRからOUを削除し、証明書を発行します。

・the name of your organization(識別名の「O」)
申請組織名になります。
例)セコムトラストシステムズの場合 「SECOM Trust Systems CO.,LTD.」

・the name of your City or Locality(識別名の「L」)
通常、組織の本店(代表)が置かれている市区町村名になります。

※市区町村以降の住所(町名、字、丁目、番地、号など)は含めないでください。

≪登録例≫

市区町村名【L】
  • 特別区(東京23区)の場合
    (例)千代田区:「Chiyoda ku」「Chiyoda-ku」「Chiyoda city」
  • 市の場合
    (例)市川市:「Ichikawa shi」「Ichikawa-shi」「Ichikawa-city」
  • 政令指定都市の場合
    (例)横浜市西区:「Yokohama-shi」「Yokohama-shi Nishi-ku」
  • 町村の場合
    (例)中郡二宮町:「Naka-gun Ninomiya-machi」「Naka-county Ninomiya-town」
    西多摩郡檜原村:「Nishitama-gun Hinohara-mura」「Nishitama-county Hinohara-village」
NG例
  • 「Mitaka-shi. Shimorenjyaku」
  • 「Shibuya-ku, jingumae 1-5-1」

町名、字、丁目、番地、号など含めたものはNGとなります。

・the name of your State or Province(識別名の「ST」)
上記市区町村のある都道府県名になります。

≪登録例≫

都道府県【ST】

(例)東京都: 「Tokyo to」「Tokyo-to」「Tokyo pref.」
北海道:「Hokkaido」「Hokkaido pref.」
大阪府:「Osaka fu」「Osaka-fu」「Osaka pref.」

※行政区分(都、府、県)を示す単語(to, fu, ken, prefecture)は省略可能です。

・the two-letter country code for this unit(識別名の「C」)
ISO 3166による国名などの2文字の符号です。日本国となりますので「JP」と入力してください。

実行例:

What is your first and last name?
 [Unknown]: www.example.jp
What is the name of your organizational unit?
 [Unknown]: Unknown
What is the name of your organization?
 [Unknown]: SECOM Trust Systems CO.,LTD.
What is the name of your City or Locality?
 [Unknown]: Mitaka shi
What is the name of your State or Province?
 [Unknown]: Tokyo to
What is the two-letter country code for this unit?
 [Unknown]: JP


1-4
サーバー識別名の確認

1.サーバー識別名 (DN) 情報が表示されますので、内容を確認してください。

実行例:

Is CN=www.example.jp, OU=Unknown, O=SECOM Trust Systems CO.,LTD., L=Mitaka shi, ST=Tokyo to, C=JP correct?


2.内容を確認後、yesと入力してください。

実行例:

[no]: yes


3.もしプロンプトの表示されたばあい、何も入力せずリターン・キーを押してください。

実行例:

Enter key password for <tomcat>
(RETURN if same as keystore password):


1-5
鍵ストアの形式変換

1.もし次のようなメッセージが出たら、以下の手順にしたがい、 出なければ、1-6.にすすんでください。

The JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using "keytool -importkeystore -srckeystore /your/keystore/filename -destkeystore /your/keystore/filename -deststoretype pkcs12".


2.鍵ストアのバックアップをとってください。


3.次のようなコマンドを実行してください。

$ keytool -importkeystore -srckeystore /your/keystore/filename
-destkeystore /your/keystore/filename -deststoretype pkcs12

4.もし次のプロンプトが表示されたら、鍵ストアに設定したパスワードを 入力してください。


Enter source keystore password:

5. 次のようなメッセージなら、出ても大丈夫です。


Entry for alias tomcat successfully imported.
Import command completed: 1 entries successfully imported, 0 entries failed or cancelled

Warning: Migrated "/your/keystore/filename" to Non JKS/JCEKS. The JKS keystore is backed up as "/your/keystore/filename.old".

6. 「/your/keystore/filename.old」という名前のファイルがあれば、消してください。



1-6
鍵ストアの確認

1.生成した鍵ストアを確認する場合は、 次のコマンドを入力してください。

実行例:

$ keytool -list -v -keystore /your/keystore/filename

/your/keystore/filename」:手順1-1.で指定した鍵ストア名


2.プロンプトが表示されますので、鍵ストアに設定したパスワードを入力してください。


実行例:

Enter keystore password: changeit

3.鍵ストアのファイルの情報が表示されます。

実行例:

Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: tomcat
Creation date: Apr 1, 2004
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=www.example.jp, OU=Unknown, O=SECOM Trust Systems CO.,LTD., L=Mitaka shi, ST=Tokyo to, C=JP
Issuer: CN=www.example.jp, OU=Unknown, O=SECOM Trust Systems CO.,LTD., L=Mitaka shi, ST=Tokyo to, C=JP
Serial number: 40141041
Valid from: Thu Apr 01 04:01:41 JST 2004 until: Fri Apr 01 04:01:41 JST 2005
Certificate fingerprints:
SHA1: 77:45:10:3E:7B:3F:31:A3:6C:31:1C:B7:04:2D:0D:41:41:42:B0:97
SHA256: E5:5D:0B:E1:40:19:CD:92:2F:A2:3A:C9:CB:59:53:EB:4A:9C:2F:04:52:B4:4F:FF:25:18:07:D4:BE:CE:38:F4

*******************************************
*******************************************

2.CSRの生成

鍵ペアが作成されたことを確認後、 CSRを生成します。

2-1
CSRの生成

次のコマンドを入力し、 CSRを生成してください。

実行例:

$ keytool -certreq -sigalg SHA256withRSA -alias tomcat -file server.csr -keystore /your/keystore/filename

tomcat」: 手順1-1.で指定した鍵ペア名
/your/keystore/filename」: 手順1-1.で指定した鍵ストア名
server.csr」: CSRが保存されるファイル名


2-2
パスワードの入力

プロンプトが表示されたら、 鍵ストアに設定したパスワードを入力してください。

実行例:

Enter keystore password: changeit

2-3
生成されたファイルの確認

CSR (例:server.csr)が生成、保存されます。

【CSRのサンプル】

生成されたファイルの確認

ここで生成したCSRを申込画面に貼り付けて申請してください。

※opensslコマンドのインストールをされている場合、CSRの内容(DN情報)は以下のコマンドで確認いただけます。

実行例:

$ openssl req -noout -text -in server.csr

server.csr」:CSRを保存したファイル名

CSRおよび鍵ペアの生成は、以上で完了です。

※重要

作成した鍵ペアのファイルは、 必ずバックアップをとって 安全な場所に保管してください。
また、鍵ストアに指定したパスワード、鍵ストアのパスワードを指定するserver.xmlファイルやそのファイルのあるconfディレクトリーのアクセス管理を、確実に行ってください。

鍵ペアのファイルの紛失、 パスワード忘れ等が発生した場合、 証明書のインストールが行えなくなります。 この場合は、 新たに証明書をご購入いただくことになりますので、 ご注意ください。

必要な場合は、システムのフルバックアップをおとりください。フルバックアップ方法につきましては、製品のマニュアル等をご確認ください。


現時点でTLS/SSLを有効化すると、発行されたサーバー証明書をインストールする前に、自己署名証明書で動作を確認できます。 有効化(2.インストール手順 「TLS/SSLの有効化および再起動」を参照)した後、動作確認を行ってください。

TLS/SSLの動作確認

1.<https://コモン・ネーム:ポート番号/> のURLで閲覧できることを、ウェブ・ブラウザでご確認ください。


  • ・「コモン・ネーム」: 手順1.で指定した コモン・ネーム
  • ・「ポート番号」: TLS/SSLの有効化でConnector要素のport属性の値に指定した待受けポートの番号

( この時点ではサーバー証明書が自己署名になっていますので、 ブラウザによっては警告のダイアログなどの出る場合もあります)。


2.Adminサーブレットにアクセスできるよう設定してから、 <https://コモン・ネーム:ポート番号/admin/index.jsp>のURLで、 ログイン画面にアクセスできることをご確認ください。


Tomcatの版や環境によっては、Tomcatに附属のAdminサーブレットのうまく機能しない場合もあるようです。その場合、機能する版のAdminサーブレットととりかえるか、 Adminサーブレットによる確認を省略してください。

Tomcat web server


3.適切なアカウントを設定してから、Adminサーブレットにログインできることを、ご確認ください。


Tomcat web server設定画面


4.Connector (ポート番号)を選択してから、指定した鍵ストアのファイルが読み込まれていることを、ご確認ください。


Tomcat web server設定画面2