このページの古いバージョンを表示しています。現在のバージョンを表示します。

現在のバージョンとの相違点 ページ履歴を表示

« 前のバージョン バージョン 12 次のバージョン »





証明書自動発行支援システム
サーバ証明書
インストールマニュアル
Apache2.0系+mod_ssl 編




2015/125/1154/12/22








国立情報学研究所

改版履歴

 

 

 

版数

日付

内容

担当

V.1.1

2014/12/22

初版

NII

V.1.2

2015/5/15

中間CA証明書のファイル名を修正

NII

V.1.3

2015/12/11

サーバ証明書設定について注釈を追加

NII

V.1.4

2018/1/26

OpenSSL ProjectのURL変更、細かい文言修正、はじめにを別ファイルに分離

STS









目次
1.はじめに
1-1.CSRとは
1-2.OpenSSLの利用について
1-3.他のサーバ証明書インストールマニュアルとの比較について
1-4.本書の範囲
12.Apache2.0系+(mod_ssl) によるサーバ証明書の利用
12-1.前提条件
12-2.事前準備
12-3.鍵ペアの生成とCSRの作成
12-3-1 鍵ペアの生成
12-3-2 CSRの生成
12-4.証明書の申請から取得まで
12-5.証明書のインストール
12-5-1 事前準備
12-5-2 中間CA証明書のインストール
12-5-3 サーバ証明書のインストール
12-6.Apacheの設定変更
12-7.サーバ証明書の置き換えインストール
12-8.起動確認

1.はじめに


証明書自動発行支援システムサーバ証明書インストールマニュアルApache2.0系+mod_ssl編(以下、「本マニュアル」)は、UPKI電子証明書発行サービス(以下、「本サービス」)から発行された証明書をApacheで使用するためのCSRの作成方法、発行したサーバ証明書をインストールする方法について記載します。

1-1.CSRとは

CSR(証明書発行要求:Certificate Signing Request)は証明書を作成するための元となる情報で、その内容には、利用管理者が管理するSSL/TLS サーバの組織名、Common Name(サーバのFQDN)、公開鍵などの情報が含まれています。NII では、利用管理者に作成いただいたCSR の内容を元に、証明書を作成します。

CSRの例

----BEGIN CERTIFICATE REQUEST----
MIIBSTCB9AIBADCBjjELMAkGA1UEBhMCSlAxEDAOBgNVBAcTB0FjYWRlbWUxKjAo
BgNVBAoTIU5hdGlvbmFsIEluc3RpdHV0ZSBvZiBJbmZvcm1hdGljczEiMCAGA1UE
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
lGu3rQIDAQABoAAwDQYJKoZIhvcNAQEEBQADQQCqpoKhuE6W4GpUhpSAJX51z/ze
BvHWjt2CBnDeyaIVNgr3+zdGKUpvWYG70RkIss4ST6PDF+RQw+TRdkzl8TUF
----END CERTIFICATE REQUEST----


1-2.OpenSSLの利用について

証明書を申請する際に必要となる鍵の作成やCSR の生成にはOpenSSLを利用することができます。OpenSSL のインストール方法等はOpenSSL Project(http://www.openssl.org)等のインターネット上のサイトやダウンロードしたファイルに付属しているインストールマニュアルを参照してください。

1-3.他のサーバ証明書インストールマニュアルとの比較について

本マニュアルでは、各サーバで使用する鍵ペア、CSR生成ツールとして、【鍵ペア生成時の共通事項】に記述したツールを使用して説明します。
また、各サーバへインストールする必要がある証明書を【サーバ証明書インストールに必要となる証明書一覧】に記述します。
【鍵ペア生成時に利用するツール】
○・・・該当する   -・・・該当しない

 

OpenSSL

JavaKeytool

iKeyman

Apache1.3系+mod_ssl

-

-

Apache2.0系+mod_ssl

-

-

Apache-SSL

-

-

Tomcat

-

-

IBM HTTP Server

-

-

IIS6.0

-

-

IIS7.0

-

-

IIS7.5

-

-

IIS8.0

-

-

IIS8.5

-

-


【サーバ証明書インストールに必要となる証明書一覧】
○・・・該当する   -・・・該当しない

 

ルートCA証明書

中間CA証明書

サーバ証明書

Apache1.3系+mod_ssl

-

Apache2.0系+mod_ssl

-

Apache-SSL

-

Tomcat

IBM HTTP Server

IIS6.0

-

IIS7.0

-

IIS7.5

-

IIS8.0

-

IIS8.5

-


1-4.本書の範囲

本書では以下の(e、f)の作業について記述をします。

マニュアル名

内容

操作手順書(利用管理者用)

  1. 利用管理者が実施する本システムへのサーバ証明書発行申請・取得について(2章に記載)
  2. 利用管理者が実施する本システムへのサーバ証明書更新申請・取得について(3章に記載)
  3. 利用管理者が実施する本システムへのサーバ証明書失効申請について(4章に記載)
  4. 本システムへの証明書アップロードフォーマットについて(5章に記載)

サーバ証明書インストールマニュアル※1

  1. CSRと鍵ペアの作成方法について
  2. サーバ証明書のインストール方法について


※1 以下のマニュアルを総称して「サーバ証明書インストールマニュアル」と呼びます。
・証明書自動発行支援システムサーバ証明書インストールマニュアル  IBM HTTP Server編
・証明書自動発行支援システムサーバ証明書インストールマニュアル Tomcat(JavaKeytool)編
・証明書自動発行支援システムサーバ証明書インストールマニュアル Apache-SSL編
・証明書自動発行支援システムサーバ証明書インストールマニュアル Apache2.0系+mod_ssl編
・証明書自動発行支援システムサーバ証明書インストールマニュアル Apache1.3系+mod_ssl編
・証明書自動発行支援システムサーバ証明書インストールマニュアル IIS8.0・IIS8.5編
・証明書自動発行支援システムサーバ証明書インストールマニュアル  IIS7.0・IIS7.5編
・証明書自動発行支援システムサーバ証明書インストールマニュアル IIS6.0編

12.Apache 2.0系+(mod_ssl) によるサーバ証明書の利用


12-1.前提条件

Apache2.0系+(mod_ssl)でサーバ証明書を使用する場合の前提条件について記載します。適時、サーバ証明書をインストールする利用管理者様の環境により、読み替えをお願いします。(本マニュアルではRedhat Enterprise Linux ES release4、OpenSSL0.9.8a、mod_ssl-2.0.52-9.ent、httpd-2.0.52-9.entRed Hat Enterprise Linux Server release 6.3 (Santiago)、OpenSSL 1.0.1e-fips 11 Feb 2013、mod_ssl-2.2.15-39.el6.x86_64、Apache/2.2.15 (Unix)での実行例を記載しております。  )

前提条件

  1. OpenSSLがインストールされていること
  2. Apacheがインストールされていること
  3. 使用されているApacheシステムに適当なmod_sslがインストールされていること
  4. ssl.confファイルまでの絶対パス:/etc/httpd /conf.d/ssl.conf
  5. httpd.confファイルまでの絶対パス:/etc/httpd/conf/httpd.conf
  6. ssl.confファイルの設定
    1. SSLCertificateFile: /etc/httpd/conf/ssl.crt/server.crt (サーバ証明書を配置)
    2. SSLCertificateKeyFile: /etc/httpd/conf/ssl.key/server.key (秘密鍵を配置)
    3. SSLCertificateChainFile:(中間CA証明書を配置)
    4. 【署名アルゴリズムSHA1のサーバ証明書利用の場合】: /etc/httpd/conf/ssl.crt/nii-odca2.crt (中間CA証明書を配置)
    5. SSLCertificateChainFile: /etc/httpd/conf/ssl.crt/nii-odca3sha1.cer (SHA1の中間CA証明書を配置)
    6. 【署名アルゴリズムSHA2のサーバ証明書利用の場合】
    7. SSLCertificateChainFile: /etc/httpd/conf/ssl.crt/nii-odca3sha2.cer (SHA2の中間CA証明書を配置)


CSR作成時は既存の鍵ペアは使わずに、必ず新たにCSR作成用に生成した鍵ペアを利用してください。更新時も同様に、鍵ペアおよびCSRを新たに作成してください。鍵ペアの鍵長は2048bitにしてください。

12-2.事前準備

鍵ペア・CSRを生成する前に、事前に以下の項目の準備をしてください。

事前準備

  1. 乱数生成用ファイルの準備(200KB程度のファイルであればどんなものでもかまいません) 本マニュアルではファイル名をrandfile1.txt、randfile2.txt、randfile3.txtとします。
  2. サーバ鍵ペア用私有鍵パスフレーズ<PassPhrase>(「12-3-112-3-2で使用」)
  3. サーバ DN(※サーバDNについては、本サービス証明書ポリシまたは、下記DNのルールをご確認ください)
  4. CSRファイル名は  servername.csr としています。


CSRに記述するDNのルールは以下のとおりとなります。

DNのルール

 

 

 

 

項目

指定内容の説明と注意

必須

文字数および注意点

Country(C)

本認証局では必ず「JP」と設定してください。
例)C=JP

JP固定

State or Province Name(ST)

本認証局では使用しないでください。

×

 

Locality Name(L)

本認証局では必ず「Academe-ops」と設定してください。
例)L=Academe

Academe-ops固定

Organization Name(O)

サービス参加申請時の機関名英語表記を設定してください。この情報は各所属機関の登録担当者にお問い合わせください。
例)O=National Institute of Informatics

半角の英数字64文字以内
(記号は「'(),-./:=」と半角スペースのみ使用可能)

Organizational Unit Name(OU)

証明書を使用する部局等の名前を設定してください。
(この値は省略可能です)
(この値は複数設定することが可能です。複数指定する方法につきましては、CSR作成時ご使用のアプリケーションのマニュアルをご確認ください。) 例)OU=Cyber Science Infrastructure Development Department

・半角の英数字64文字以内
(記号は「'(),-./:=」と半角スペースのみ使用可能)
・複数OUを指定する場合は、全体で64文字以内

Common Name(CN)

サーバ証明書URLに表示されるウェブ・サーバの名前をFQDNで設定してください。例えばSSL/TLSを行うサイトが
+

https://www.nii.ac.j

{+}pの場合には、「www.nii.ac.jp」となります。FQDNにはサービス参加申請時に登録いただいた対象ドメイン名を含むFQDNのみ、証明書発行が可能となります。
例)www.nii.ac.jp                                                                                                                                             

証明書をインストールする対象サーバのFQDNで64文字以内
半角英数字、"."、""のみ使用可能。また、先頭と末尾に"."と""は使用不可

Email

本認証局では使用しないでください。

×

 

鍵長

 

 

 

 

RSA 2048bit

 

 

 

 

○・・・必須 ×・・・入力不可 △・・・省略可
注意:証明書の更新を行う場合は、先に12-7をご確認ください。

12-3.鍵ペアの生成とCSRの作成

12-3-1 鍵ペアの生成

以下に鍵ペアの生成方法を記述します。

鍵ペアの作成

  1. 鍵ペアを生成するため、「12-2.事前準備」の手続き1で用意したファイル (200 KB 程度) を3つ選んでください。この手続きでは、 選択したファイルの名前を「randfile1.txt」、「randfile2.txt」、「randfile3.txt」として表記します。


  2. 用意したファイルを、作業ディレクトリに移動してください。

    $mv <randfile1.txt> <randfile2.txt> <randfile3.txt> /etc/httpd/conf/ssl.key/

  3. 鍵ペアの作成を行うため、次のコマンドを入力してください。今回のコマンド例では、 作業ディレクトリに移動し、2048 bitの RSA 鍵ペアを生成し、「servername.key」という名前で保存することを示しています。

    $cd /etc/httpd/conf/ssl.key/ 作業ディレクトリへ移動してください
    $openssl genrsa -des3 -rand <randfile1.txt>:<randfile2.txt>:<randfile3.txt> 2048 > servername.key
    Generating RSA private key, 2048 bit long modulus
    ..............................++++++
    ...............++++++
    unable to write 'random state'
    e is 65537 (0x10001)
    Enter pass phrase: <PassPhrase>             私有鍵パスフレーズ入力
    Verifying - Enter pass phrase: <PassPhrase>    私有鍵パスフレーズ再入力

    重要: この鍵ペア用私有鍵パスフレーズは、サーバの再起動時および証明書のインストール等に必要となる重要な情報です。鍵ペア利用期間中は忘れることがないよう、また、情報が他人に漏れることがないよう、安全な方法で管理してください。






  4. 作成した鍵ペアのファイルを保存します。バックアップは外部媒体ディスク等に保存し、安全な場所に保存してください。鍵ペアの中の私有鍵を利用すれば、お使いのウェブ・サーバがSSL/TLS で保護して送受信したデータを、解読することができてしまいます。従って保存する鍵ペアファイルへのアクセス権は利用管理者自身とSSL/TLS サーバのプロセス等必要最小限になるよう設定してください。またバックアップを保存した外部媒体ディスク等も利用管理者のみまたは同じ権限のある方のみ利用できる場所へ保管してください。また、鍵ペア用私有鍵パスフレーズの管理も、確実に行ってください。鍵ペアファイルの紛失、鍵ペア用私有鍵パスフレーズ忘れ等が発生した場合、証明書のインストールが行えなくなります。この場合、新たに証明書を申請しなおしていただくことになりますので、ご注意ください。


12-3-2 CSRの生成

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

CSRの作成

  1. 次のコマンドを入力し、CSRの作成を開始してください。パスフレーズの入力が求められますので、「12-3-1 鍵ペアの生成」の手続き3で作成した私有鍵のパスフレーズを入力してください。 コマンドでは、署名アルゴリズムSHA1でCSRを作成し、「servername.csr」(ファイル名は任意)というファイル名で保存することを示しています。

    $openssl req –new –key servername.key –sha1 –out servername.csr CSRファイル名
    Enter pass phrase for servername.key: <PassPhrase> 私有鍵パスフレーズ入力
    -sha1」:署名アルゴリズムを示すオプション。
           署名アルゴリズムSHA2でCSRを作成する場合は、「-sha256」に置き換えてください。















  2. パスフレーズの入力に成功するとDN情報の問い合わせが行われますので、「12-2. 事前準備」の「DNルール」に従い、DN情報を入力してください。OpenSSLでは必要ない項目を「.」ドットを入力することにより、省略することができます。

    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) [AU]:JP "JP"を入力
            State or Province Name (full name) []State or Province Name (full name) [Some-State]:. 「.」ドットの入力
            Locality Name (eg, city) [Default City]Locality Name (eg, city) []:Academe "Academe"を入力
            Organization Name (eg, company) [Default Company Ltd]Organization Name (eg, company) [Internet Widgits Pty Ltd]:National Institute of Informatics
            組織名を入力
            Organizational Unit Name (eg, section) []:Cyber Science Infrastructure Development Department 部局名を入力
            Common Name (eg, your name or your server's hostname) []Common Name (eg, YOUR name) []:www.nii.ac.jp サーバ名FQDN を入力
            Email Address []:. 「.」ドットを入力
            Please enter the following 'extra' attributes
            to be sent with your certificate request
            A challenge password []:. 「.」ドットを入力
            An optional company name []:.「.」ドットを入力



  3. 要求された情報の入力が完了すると CSR が生成され、servername.csrに保存されます。なお、このファイルも、バックアップをとって、証明書を受領するまでは別途保管することをお勧めします。

    ----BEGIN CERTIFICATE REQUEST----
    MIIBhDCB7gIBADBFMQswCQYDVQQGEwJKUDEQMA4GA1UEBxMHQWNhZGVtZTEMMAoG

    Um0E3vq8Ajg=
    ----END CERTIFICATE REQUEST----






  4. 以下のコマンドを入力することにより、CSRの内容を確認することができます。

    $ openssl req -noout -text -in servername.csr
    Certificate Request:
    Data:
    Version: 0 (0x0)
    Subject: C=JP, L=Academe, 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
    RSA Public Key: (2048 bit) 鍵長が2048bitであることを確認してください。
    Modulus (2048 bit):
    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: sha1WithRSAEncryption CSR生成時に指定した署名アルゴリズムで あることを確認してください。署名アルゴリズムにsha256を指定した場合は「sha256WithRSAEncryption」と表示されます。

    88:44:e5:27:06:02:ec:85:6c:29:6a:0f:a3:92:87:4e:e2:f1:
                   :
                   例
                   :
    9c:3c:0b:7e:1c:55:3d:c3:b3:7a:3a:36:d1:f6:3a:97:78:1a:
    c1:cc



12-4.証明書の申請から取得まで

CSRを作成後、登録担当者へ送付するための証明書発行申請TSVファイルを作成し申請します。証明書発行申請TSVファイルの作成方法、申請方法等につきましては、「証明書自動発行支援システム操作手順書(利用管理者用)」をご確認ください。
証明書の発行が完了すると、本システムより以下のメールが送信されます。メール本文に記載された証明書取得URLにアクセスし、証明書の取得を実施してください。

証明書取得URLの通知

【件名】
Webサーバ証明書発行受付通知

・・・・・

#以下に証明書の取得先が記述されています。
貴機関の登録担当者経由で発行申請をいただきましたサーバ証明書を配付いたします。
本日から1ヶ月以内に以下の証明書取得URLへアクセスし、サーバ証明書の取得を行ってください。
*+証明書取得URL:

https://scia.secomtrust.net/

~   +* ←左記URLにアクセスし証明書の取得を行ってください。

・・・・・


12-5.証明書のインストール

本章ではApache2.0系+mod_sslへの証明書のインストール方法について記述します。

12-5-1 事前準備

事前準備として、サーバ証明書、中間CA証明書を取得してください。

事前準備

  1. 「12-4.証明書の受領」で受領したサーバ証明書をserver.crtという名前で任意の場所に保存してください。


  2. 中間CA証明書を準備します。 次のURLにアクセスすることでリポジトリにアクセスすることが可能です。 リポジトリ:https://repo1.secomtrust.net/sppca/nii/odca3/index.html 【署名アルゴリズムSHA1のサーバ証明書利用の場合】 SHA1の中間CA証明書(SHA-1認証局 CA証明書)をnii-odca3sha1.cerodcag3.crtという名前で保存してください。

    【署名アルゴリズムSHA2のサーバ証明書利用の場合】
    SHA2の中間CA証明書(SHA-2認証局 CA証明書)をnii-odca3sha2.cerodcag4.crtという名前で保存してください。



12-5-2 中間CA証明書のインストール

以下の手続きに従って、中間CA証明書のインストールを行ってください。

中間CA証明書のインストール

中間CA証明書は「21-1.前提条件」条件5で記述したssl.confファイルの「SSLCertificateChainFile」で指定します。
「12-5-1.事前準備」で取得した中間CA証明書を「21-1.前提条件」(ウ)で記述したパスへ移動してください。 【署名アルゴリズムSHA1のサーバ証明書利用の場合】 $ mv nii-odca3sha1.cer odcag3.crt /etc/httpd/conf/ssl.crt/nii-odca3sha1.cerodcag3.crt


【署名アルゴリズムSHA2のサーバ証明書利用の場合】
$ mv nii-odca3sha2.cerodcag4.crt /etc/httpd/conf/ssl.crt/nii-odca3sha2.cerodcag4.crt


12-5-3 サーバ証明書のインストール

新規でサーバ証明書をインストールする場合は以下の手続きによりサーバ証明書のインストールを実施してください。

サーバ証明書のインストール

サーバ証明書は「21-1.前提条件」条件6で記述したssl.confファイルの「SSLCertificateFile」で指定します。
「12-5-1.事前準備」で取得したサーバ証明書を「21-1.前提条件」(ア)で記述したパスへ移動してください。
$ mv server.crt /etc/httpd/conf/ssl.crt/server.crt



12-6.Apacheの設定変更

本章ではApacheに証明書を適用するための設定方法について記述します。「21-4.証明書の受領」で受領したサーバ証明書をserver.crtという名前で保存した場合の設定にて記載しています。

Apacheの設定変更

証明書のインストール終了後、「12-1. 前提条件」で記述したssl.confファイルの編集を行ってください。証明書の更新を行った場合は新たに作成した秘密鍵をSSLCertificateKeyFileに、新たに作成した証明書をSSLCertificateFileに、新たに取得した中間CA証明書をSSLCertificateChainFileに設定してください。(12-1 前提条件のとおりである場合は、設定の変更は必要ございません)
・・・
SSLCertificateFile:
デフォルトでは/etc/httpd/conf/ssl.crt/server.crt (サーバ証明書を配置)
SSLCertificateKeyFile:
デフォルトでは/etc/httpd/conf/ssl.key/server.key (秘密鍵を配置)
SSLCertificateChainFile:
デフォルトでは/etc/httpd/conf/ssl.crt/server-chain.crt(中間CA証明書を配置)
・・・









12-7.サーバ証明書の置き換えインストール

更新したサーバ証明書をインストールする場合は以下の手続きによりサーバ証明書のインストールを実施してください。

サーバ証明書の置き換えインストール

  1. 旧サーバ証明書の鍵ペアをコピーしてください。

    $ cd /etc/httpd/conf/ssl.key/
    $ cp server.key server.key.old
  2. 更新対象のサーバ証明書をコピーして、保管してください。

    $ cd /etc/httpd/conf/ssl.crt/
    $ cp server.crt server.crt.old

  3. 本マニュアルに従い、証明書の更新申請を実施してください。


  4. 「12-5-1.事前準備」で取得したサーバ証明書を「12-1.前提条件」(ア)で記述したパスへ移動してください。
    $ mv server.crt /etc/httpd/conf/ssl.crt/server.crt



12-8.起動確認

本章ではインストールした証明書によるSSL通信に問題がないか確認する方法を記述します。

証明書の反映・確認

  1. Apacheを再起動し、変更した設定を反映させます。

    $ /etc/init.d/httpd stop Apacheの停止
    $ /etc/init.d/httpd start Apacheの起動




  2. ブラウザ経由で、該当のサーバへアクセスし、SSL通信に問題がないことを確認してください。


以上

  • ラベルがありません