改版履歴 |
版数 | 日付 | 内容 | 担当 |
V.1.1 | 2014/12/22 | 初版 | NII |
V.1.2 | 2015/5/15 | 中間CA証明書のファイル名を修正 | NII |
V.1.3 | 2015/12/11 | サーバ証明書設定について注釈を追加 | NII |
V.2.0 | 2018/2/26 | SHA1の記載内容の削除 | NII |
目次
1.Apache(mod_ssl) によるサーバ証明書の利用
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 サーバ証明書のインストール
1-6.Apacheの設定変更
1-7.サーバ証明書の置き換えインストール
1-8.起動確認
1.Apache (mod_ssl) によるサーバ証明書の利用
1-1.前提条件
Apache(mod_ssl)でサーバ証明書を使用する場合の前提条件について記載します。適時、サーバ証明書をインストールする利用管理者様の環境により、読み替えをお願いします。
(本マニュアルではRed 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)での実行例を記載しております。 )
前提条件 |
- OpenSSLがインストールされていること
- Apacheがインストールされていること
- 使用されているApacheシステムに適当なmod_sslがインストールされていること
- ssl.confファイルまでの絶対パス:/etc/httpd /conf.d/ssl.conf
- httpd.confファイルまでの絶対パス:/etc/httpd/conf/httpd.conf
- ssl.confファイルの設定
- SSLCertificateFile: /etc/httpd/conf/ssl.crt/server.crt (サーバ証明書を配置)
- SSLCertificateKeyFile: /etc/httpd/conf/ssl.key/server.key (秘密鍵を配置)
- SSLCertificateChainFile: /etc/httpd/conf/ssl.crt/nii-odca3sha2.cer (SHA2の中間CA証明書を配置)
|
CSR作成時は既存の鍵ペアは使わずに、必ず新たにCSR作成用に生成した鍵ペアを利用してください。
更新時も同様に、鍵ペアおよびCSRを新たに作成してください。鍵ペアの鍵長は2048bitにしてください。
1-2.事前準備
鍵ペア・CSRを生成する前に、事前に以下の項目の準備をしてください。
事前準備 |
- 乱数生成用ファイルの準備(200KB程度のファイルであればどんなものでもかまいません) 本マニュアルではファイル名をrandfile1.txt、randfile2.txt、randfile3.txtとします。
- サーバ鍵ペア用私有鍵パスフレーズ<PassPhrase>(「1-3-1、1-3-2で使用」)
- サーバ DN(※サーバDNについては、本サービス証明書ポリシまたは、下記DNのルールをご確認ください)
- CSRファイル名は servername.csr としています。
|
CSRに記述するDNのルールは以下のとおりとなります。
DNのルール |
項目 | 指定内容の説明と注意 | 必須 | 文字数および注意点 |
Country(C) | 本認証局では必ず「JP」と設定してください。 例)C=JP | ○ | JP固定 |
State or Province Name(ST) | 本認証局では使用しないでください。 | × | |
Locality Name(L) | 本認証局では必ず「Academe」と設定してください。 例)L=Academe | ○ | Academe固定 |
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.jpの場合には、「www.nii.ac.jp」となります。FQDNにはサービス参加申請時に登録いただいた対象ドメイン名を含むFQDNのみ、証明書発行が可能となります。 例)www.nii.ac.jp | ○ | 証明書をインストールする対象サーバのFQDNで64文字以内 半角英数字、"."、"-"のみ使用可能。また、先頭と末尾に"."と"-"は使用不可 |
Email | 本認証局では使用しないでください。 | × | |
鍵長 |
RSA 2048bit |
○・・・必須 ×・・・入力不可 △・・・省略可
注意:証明書の更新を行う場合は、先に1-7をご確認ください。
1-3.鍵ペアの生成とCSRの作成
1-3-1 鍵ペアの生成
以下に鍵ペアの生成方法を記述します。
鍵ペアの作成 |
- 鍵ペアを生成するため、「1-2.事前準備」の手続き1で用意したファイル (200 KB 程度) を3つ選んでください。この手続きでは、 選択したファイルの名前を「randfile1.txt」、「randfile2.txt」、「randfile3.txt」として表記します。
用意したファイルを、作業ディレクトリに移動してください。 $mv <randfile1.txt> <randfile2.txt> <randfile3.txt> /etc/httpd/conf/ssl.key/ |
鍵ペアの作成を行うため、次のコマンドを入力してください。今回のコマンド例では、 作業ディレクトリに移動し、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> ←私有鍵パスフレーズ再入力 |
重要: この鍵ペア用私有鍵パスフレーズは、サーバの再起動時および証明書のインストール等に必要となる重要な情報です。鍵ペア利用期間中は忘れることがないよう、また、情報が他人に漏れることがないよう、安全な方法で管理してください。
- 作成した鍵ペアのファイルを保存します。バックアップは外部媒体ディスク等に保存し、安全な場所に保存してください。
鍵ペアの中の私有鍵を利用すれば、お使いのウェブ・サーバがSSL/TLS で保護して送受信したデータを、解読することができてしまいます。 従って保存する鍵ペアファイルへのアクセス権は利用管理者自身とSSL/TLS サーバのプロセス等必要最小限になるよう設定してください。 またバックアップを保存した外部媒体ディスク等も利用管理者のみまたは同じ権限のある方のみ利用できる場所へ保管してください。 また、鍵ペア用私有鍵パスフレーズの管理も、確実に行ってください。鍵ペアファイルの紛失、鍵ペア用私有鍵パスフレーズ忘れ等が発生した場合、証明書のインストールが行えなくなります。 この場合、新たに証明書を申請しなおしていただくことになりますので、ご注意ください。
|
1-3-2 CSRの生成
鍵ペアが作成されたことを確認後、CSRを生成します。
CSRの作成 |
次のコマンドを入力し、CSRの作成を開始してください。パスフレーズの入力が求められますので、「1-3-1 鍵ペアの生成」の手続き3で作成した私有鍵のパスフレーズを入力してください。 コマンドでは、署名アルゴリズムSHA2でCSRを作成し、「servername.csr」(ファイル名は任意)というファイル名で保存することを示しています。
$openssl req –new –key servername.key –sha256 –out servername.csr ←CSRファイル名 Enter pass phrase for servername.key: <PassPhrase> ←私有鍵パスフレーズ入力 |
「-sha256」:署名アルゴリズムを示すオプション。 署名アルゴリズムSHA1でCSRを作成する場合は、「-sha1」に置き換えてください。
パスフレーズの入力に成功するとDN情報の問い合わせが行われますので、「1-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) []:. ←「.」ドットの入力 Locality Name (eg, city) [Default City]:Academe ←"Academe"を入力 Organization Name (eg, company) [Default Company 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) []: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 []:.← 「.」ドットを入力 |
要求された情報の入力が完了すると CSR が生成され、servername.csrに保存されます。なお、このファイルも、バックアップをとって、証明書を受領するまでは別途保管することをお勧めします。 ----BEGIN CERTIFICATE REQUEST---- MIIBhDCB7gIBADBFMQswCQYDVQQGEwJKUDEQMA4GA1UEBxMHQWNhZGVtZTEMMAoG 例 Um0E3vq8Ajg= ----END CERTIFICATE REQUEST---- |
以下のコマンドを入力することにより、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 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: : 例 |
|
1-4.証明書の申請から取得まで
CSRを作成後、登録担当者へ送付するための証明書発行申請TSVファイルを作成し申請します。
証明書発行申請TSVファイルの作成方法、申請方法等につきましては、「証明書自動発行支援システム操作手順書(利用管理者用)」をご確認ください。
証明書の発行が完了すると、本システムより以下のメールが送信されます。メール本文に記載された証明書取得URLにアクセスし、証明書の取得を実施してください。
証明書取得URLの通知 |
【件名】 Webサーバ証明書発行受付通知 ・・・・・ #以下に証明書の取得先が記述されています。 貴機関の登録担当者経由で発行申請をいただきましたサーバ証明書を配付いたします。 本日から1ヶ月以内に以下の証明書取得URLへアクセスし、サーバ証明書の取得を行ってください。 証明書取得URL: https://scia.secomtrust.net/~ ←左記URLにアクセスし証明書の取得を行ってください。 ・・・・・ |
1-5.証明書のインストール
本章ではApache(mod_ssl)への証明書のインストール方法について記述します。
1-5-1 事前準備
事前準備として、サーバ証明書、中間CA証明書を取得してください。
1-5-2 中間CA証明書のインストール
以下の手続きに従って、中間CA証明書のインストールを行ってください。
中間CA証明書のインストール |
中間CA証明書は「1-1.前提条件」条件5で記述したssl.confファイルの「SSLCertificateChainFile」で指定します。 「1-5-1.事前準備」で取得した中間CA証明書を「1-1.前提条件」(c.)で記述したパスへ移動してください。 $ mv nii-odca3sha2.cer /etc/httpd/conf/ssl.crt/nii-odca3sha2.cer |
|
1-5-3 サーバ証明書のインストール
新規でサーバ証明書をインストールする場合は以下の手続きによりサーバ証明書のインストールを実施してください。
サーバ証明書のインストール |
サーバ証明書は「1-1.前提条件」条件6で記述したssl.confファイルの「SSLCertificateFile」で指定します。 「1-5-1.事前準備」で取得したサーバ証明書を「1-1.前提条件」(a.)で記述したパスへ移動してください。 $ mv server.crt /etc/httpd/conf/ssl.crt/server.crt |
|
1-6.Apacheの設定変更
本章ではApacheに証明書を適用するための設定方法について記述します。「1-4.証明書の受領」で受領したサーバ証明書をserver.crtという名前で保存した場合の設定にて記載しています。
Apacheの設定変更 |
証明書のインストール終了後、「1-1. 前提条件」で記述したssl.confファイルの編集を行ってください。 証明書の更新を行った場合は新たに作成した秘密鍵をSSLCertificateKeyFileに、新たに作成した証明書をSSLCertificateFileに、新たに取得した中間CA証明書をSSLCertificateChainFileに設定してください。 (1-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証明書を配置) ・・・ |
|
1-7.サーバ証明書の置き換えインストール
更新したサーバ証明書をインストールする場合は以下の手続きによりサーバ証明書のインストールを実施してください。
サーバ証明書の置き換えインストール |
旧サーバ証明書の鍵ペアをコピーしてください。 $ cd /etc/httpd/conf/ssl.key/ $ cp server.key server.key.old |
更新対象のサーバ証明書をコピーして、保管してください。 $ cd /etc/httpd/conf/ssl.crt/ $ cp server.crt server.crt.old |
- 本マニュアルに従い、証明書の更新申請を実施してください。
「1-5-1.事前準備」で取得したサーバ証明書を「1-1.前提条件」(a.)で記述したパスへ移動してください。 $ mv server.crt /etc/httpd/conf/ssl.crt/server.crt |
|
1-8.起動確認
本章ではインストールした証明書によるSSL通信に問題がないか確認する方法を記述します。
証明書の反映・確認 |
Apacheを再起動し、変更した設定を反映させます。 $ /etc/init.d/httpd stop ←Apacheの停止 $ /etc/init.d/httpd start ←Apacheの起動 |
- ブラウザ経由で、該当のサーバへアクセスし、SSL通信に問題がないことを確認してください。
|