セコムのサーバー証明書

証明書の設定Tomcat 新規/更新用

中間CA証明書、サーバー証明書をダウンロードし、次の手順に従い証明書を設定してください。

注意事項

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

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

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

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

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

1.証明書インストール方法

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

4階層の設定について

for Webシリーズの各サービスの信頼チェーンは、ルート証明機関「Security Communication RootCA2」を信頼の起点にした3階層です。中間CA証明書 (クロス・ルート証明書ともいいます) の追加インストールで、ルート証明機関「Security Communication RootCA1」を使用した4階層とすることも可能でしたが、弊社はこの中間CA証明書を2023年4月18日に失効します。

ルート証明機関の違いでスマートフォンの対応環境は変化します。 失効日の2023年4月18日まで間もないことをご確認いただき、それでも4階層の設定をご希望ならば、4階層用の中間CA証明書とSR3.0用の中間CA証明書の2つの中間CA証明書を連結し、テキストファイルに貼り付けて保存しご利用ください。

連結の例)
-----BEGIN CERTIFICATE-----
  SR3.0用中間CA証明書
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
 4階層用の中間CA証明書
-----END CERTIFICATE-----


1-1
サーバー証明書とチェーン証明書(中間CA証明書)の2つをつなぐ

まず、各証明書ファイルの末尾が5つのハイフンと改行で終わっていることを、ご確認ください。

次のコマンドを入力し、ダウンロードしたサーバー証明書(例:Bxxxxxx.cer)と上記の中間CA証明書(例: pfwsr3ca.cer)の2つをつなぎます。

コマンド例:

$ cat Bxxxxxx.cer pfwsr3ca.cer >combined.crt

combined.crt」: 任意のファイル名


1-2
証明書のインストール

次のコマンドを入力し、つないだ証明書をインストールしてください。

コマンド例:

$ keytool -import -alias tomcat -file combined.crt -keystore /your/keystore/filename

tomcat」:申込時に作成した鍵ペアの名前。
Tomcat 6以降をご利用の場合は、立上げファイル (conf/server.xml) のConnector要素のkeyAlias属性に指定した値と同一です。

combined.crt」:上記手順 1-1.でつないだファイルの名前

/your/keystore/filename」:申込時に作成した鍵ストアのファイルの名前


1-3
パスワードの入力

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

コマンド例:

Enter keystore password: changeit

changeit」:申込時に作成した鍵ストアのパスワード

※JREのバージョンにより、次のようなプロンプトが表示されることがあります。 表示された場合は、「yes」と入力してください。

コマンド例:

Top-level certificate in reply:
Owner: CN=SECOM Passport for Web SR 3.0 CA, O=SECOM Trust Systems CO.,LTD., C=JP
Issuer: OU=Security Communication RootCA2, O=SECOM Trust Systems CO.,LTD., C=JP
Serial number: 22b9b12f4d05f9ed13
Valid from: Fri Mar 16 14:49:12 JST 2018 until: Thu Mar 16 14:49:12 JST 2028
Certificate fingerprints:
  MD5: 58:90:E5:56:02:F0:39:01:14:3F:E0:52:91:93:10:F5
  SHA1: 6B:28:0F:B5:8C:B7:DA:FC:D7:23:B9:55:75:A8:B4:2C:83:AE:86:18
  SHA256: E0:5E:D4:A9:E4:C7:73:30:8A:93:E8:49:86:12:25:AE:34:9A:92:BB:D4:BA:CD:D4:90:0A:D4:E7:3B:13:11:00

... is not trusted. Install reply anyway? [no]:  yes

プロンプトが日本語表示の場合

環境によっては、次のような日本語表示のこともあります。

コマンド例:

応答したトップレベルの証明書:

所有者: CN=SECOM Passport for Web SR 3.0 CA, O=SECOM Trust Systems CO.,LTD., C=JP
実行者: OU=Security Communication RootCA2, O=SECOM Trust Systems CO.,LTD., C=JP
シリアル番号: 22b9b12f4d05f9ed13
有効期間の開始日: Fri Mar 16 14:49:12 JST 2018 終了日: Thu Mar 16 14:49:12 JST 2028
証明書のフィンガープリント:
MD5: 58:90:E5:56:02:F0:39:01:14:3F:E0:52:91:93:10:F5
SHA1: 6B:28:0F:B5:8C:B7:DA:FC:D7:23:B9:55:75:A8:B4:2C:83:AE:86:18
SHA256: E0:5E:D4:A9:E4:C7:73:30:8A:93:E8:49:86:12:25:AE:34:9A:92:BB:D4:BA:CD:D4:90:0A:D4:E7:3B:13:11:00

... は信頼されていません。 応答をインストールしますか? [no]:

1-4
インストールの確認

次のように表示されることを、ご確認ください。

コマンド例:

Certificate reply was installed in keystore

以上で証明書のインストールは完了です。

証明書のファイルの削除

この確認がとれればつないだ証明書のファイルは不要になりますので、次のコマンドの入力で削除していただいて問題ございません。

コマンド例:

$ rm -f combined.crt

2.TLS/SSLの有効化 および 再起動

TLS/SSLを有効にし、再起動を行います。 TLS/SSLを設定済みであれば、次のように設定されているかどうかをご確認いただき、再起動を行ってください。

2-1
TLS/SSLの有効化

次のようなConnector要素 (またはSSLHostConfig要素やCertificate要素) を、 server.xmlファイルに指定してください。

  • ・「443」 : Tomcatが待ち受けるポートの番号
    ※Tomcat付属の立上げファイルでは8443番ポートですが、 httpsでは既定で443番ポートを使用します。
  • ・「changeit」 :  申込時に作成した鍵ストアのパスワード
  • ・「/your/keystore/filename」 : 申込時に作成した鍵ストアのファイル名
  • ・「tomcat」 :  申込時に作成した鍵ペア名
  • ・「www.example.jp」 :  申込時に入力したコモン・ネーム
  • ・「JKS」 :  申込時のJavaの設定にしたがった鍵ストアのタイプ
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
        -->
   <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
                    port="443" minProcessors="5" maxProcessors="75" enableLookups="true"
                    acceptCount="100" debug="0" scheme="https" secure="true"
                    useURIValidationHack="false" disableUploadTimeout="true">
      <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
                    keystoreFile="/your/keystore/filename" keystorePass="changeit"
                    clientAuth="false" protocol="TLS"/>
     </Connector>
<!--
        -->
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
        -->
     <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
                    port="443" enableLookups="true" scheme="https"
                    secure="true" acceptCount="100"
                    useURIValidationHack="false" disableUploadTimeout="true"
                    keystoreFile="/your/keystore/filename"
                    keystorePass="changeit"
                    clientAuth="false" sslProtocol="TLS"  />
<!--
        -->
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
        -->
     <Connector port="443"
                maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                enableLookups="false" disableUploadTimeout="true"
                acceptCount="100" debug="0" scheme="https" secure="true"
                keystoreFile="/your/keystore/filename" keystorePass="changeit"
                clientAuth="false" sslProtocol="TLS" />
<!--
        -->
<!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
<!--
        -->
     <Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
                keystoreFile="/your/keystore/filename" keystorePass="changeit"
                keyAlias="tomcat"
                clientAuth="false" sslProtocol="TLS" />
<!--
        -->
<!-- Define a SSL HTTP/1.1 Connector on port 8443
      This connector uses the BIO implementation that requires the JSSE
      style configuration. When using the APR/native implementation, the
      OpenSSL style configuration is required as described in the APR/native
      documentation -->
<!--
        -->
     <Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                keystoreFile="/your/keystore/filename" keystorePass="changeit"
                keyAlias="tomcat"
                clientAuth="false" sslProtocol="TLS" />
<!--
        -->
<!-- Define an SSL HTTP/1.1 Connector on port 8443
      This connector uses the NIO implementation that requires the JSSE
      style configuration. When using the APR/native implementation, the
      OpenSSL style configuration is required as described in the APR/native
      documentation -->
<!--
        -->
     <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
                keystoreFile="/your/keystore/filename" keystorePass="changeit"
                keyAlias="tomcat"
                clientAuth="false" sslProtocol="TLS" />
<!--
        -->
<!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443
      This connector uses the NIO implementation. The default
      SSLImplementation will depend on the presence of the APR/native
      library and the useOpenSSL attribute of the AprLifecycleListener.
      Either JSSE or OpenSSL style configuration may be used regardless of
      the SSLImplementation selected. JSSE style configuration is used below.
      -->
     <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true"
                maxParameterCount="1000"
                keystoreFile="/your/keystore/filename"
                keystorePass="changeit" keyAlias="tomcat">

Connector要素の内側に次のようなSSLHostConfig要素を追加してください。
Connector要素が「/>」で終わる自己区切りのときは、「/」文字の削除と同様、 閉じタグ (「</Connector>」) も忘れず追加してください。
「JKS」でうまく機能しない場合、「pkcs12」も試してみてください。

     <SSLHostConfig hostName="www.example.jp">
         <Certificate certificateKeystoreFile="/your/keystore/filename"
                certificateKeystorePassword="changeit"
                certificateKeyAlias="tomcat"
                certificateKeystoreProvider="SUN"
                certificateKeystoreType="JKS"
                type="RSA" />
     </SSLHostConfig>

ひとつのConnector要素の中に複数のSSLHostConfig要素をお使いのばあい、SSLHostConfig要素のhostName属性の値にFQDNを指定してください。
UpgradeProtocol要素のあった場合でも、UpgradeProtocol要素の変更は不要です。

<!-- Define an SSL HTTP/1.1 Connector on port 8443
      This connector uses the NIO implementation. The default
      SSLImplementation will depend on the presence of the APR/native
      library and the useOpenSSL attribute of the
      AprLifecycleListener.
      Either JSSE or OpenSSL style configuration may be used regardless of
      the SSLImplementation selected. JSSE style configuration is used below.
-->
<!--
        -->
     <Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true">
            <SSLHostConfig>
              <Certificate certificateKeystoreFile="/your/keystore/filename"
                certificateKeyAlias="tomcat"
                certificateKeystorePassword="changeit"
                type="RSA" />
            </SSLHostConfig>
     </Connector>
<!--
        -->

注意:
鍵ストアのパスワードは、 server.xmlファイルに平文で指定します。 パスワードや秘密鍵が他人に漏洩しないよう、 このファイルやconfディレクトリーの許可モードなどにご注意ください。


2-2
Tomcatの停止・再起動

設定を反映させるため、Tomcatを停止・再起動をしてください。

停止コマンド
$ ${CATALINA_HOME}/bin/catalina.sh stop

または

$ ${CATALINA_HOME}/bin/shutdown.sh

${CATALINA_HOME}」:Tomcatを導入したディレクトリー


再起動コマンド
# ${CATALINA_HOME}/bin/catalina.sh run

または

# ${CATALINA_HOME}/bin/startup.sh

参考: 待ち受けるポート番号によっては、スーパーユーザー特権の不必要な場合もあります。

証明書のインストールは、以上で完了です。

※ 重要
証明書のインストール後、鍵ストアのファイルは、必ずバックアップをとり、パスワードの保管場所と別の安全な場所に保管してください。