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

GlobalSignのクイック認証SSLサーバ証明書の取得およびインストールを行います。

ファイル名等やフォルダのパス等は任意です。この通りでなくても結構です。
ここでは、以下のようにします。
WEBサイトドメイン www.example.jp
Apacheインストールフォルダ /etc/httpd
SSL用設定ファイル /etc/httpd/conf.d/ssl.conf
SSL証明書ファイル保存フォルダ /etc/httpd/certs
乱数ファイル /etc/httpd/certs/rand.dat
サーバ用秘密鍵 www.example.jp.privkey.pem
サービス起動用秘密鍵 www.example.jp.privkey_nopwd.pem
CSR(署名要求) www.example.jp.csr.pem
サーバ証明書 www.example.jp.cert.pem
中間CA証明書 inca.pem

1. 準備作業

(1) mod_sslのインストール
mod_sslがインストールされているかどうかチェックします。
# rpm -qi mod_ssl
ここで、mod_sslのインストール情報が表示されれば「mod_ssl」はインストール済みなのでこの項目はスキップして下さい。
「パッケージ mod_ssl はインストールされていません。」というようなメッセージが表示されればインストールを行います。
# yum install mod_ssl

(2) フォルダの作成
SSLサーバ証明書関連ファイルを保存するフォルダを作成します。
# mkdir /etc/httpd/certs

(3) 乱数データファイルの作成
鍵の作成時に使用する乱数データファイルを作成します。
ここでは、ファイル名を「rand.dat」とします。
# openssl dgst -sha256 /usr/bin/* > /etc/httpd/certs/rand.dat
※ここでは「/usr/bin」以下のファイル名を使用して乱数を生成していますが、フォルダのパスは任意で構いません。

(4) 年度フォルダの作成
SSLサーバ証明書関連ファイルは毎年作成するものなので、年度ごとに管理するため当年のフォルダを作成します。
【例】2016年の場合
# mkdir /etc/httpd/certs/2016
※SSLサーバ証明書の各ファイルはここに保存します。
ここでは例として、以下「2016」フォルダで作業を行います。
# cd /etc/httpd/certs/2016

(5) 年度フォルダの指定の仕方
年度フォルダ名を直接設定ファイルに指定すると、毎年年度を変更する必要があります。そこで、以下のようにすると、更新が楽になります。
  • 年度フォルダを作成します。(例:2020年の場合)
# mkdir /etc/httpd/certs/2020
  • シンボリックリンクで、「latest」を作成します。
# ln -s /etc/httpd/certs/2020 /etc/httpd/certs/latest
これにより、「/etc/httpd/certs/latest」にアクセスすると、「/etc/httpd/certs/2020」にアクセスできます。
  • SSL設定ファイルでは、この「latest」を指定します。
SSLCertificateFile /etc/httpd/certs/latest/www.example.jp.full_cert.pem
SSLCertificateKeyFile /etc/httpd/certs/latest/www.example.jp.privkey_nopwd.pem
  • 次の年は「2021」フォルダを作成して、このフォルダのシンボリックリンクを作成します。
# mkdir /etc/httpd/certs/2021
# rm /etc/httpd/certs/latest
# ln -s /etc/httpd/certs/2021 /etc/httpd/certs/latest

2. サーバ用秘密鍵の作成

サーバ用秘密鍵は、RSA鍵を生成し、暗号化アルゴリズムはDES3、鍵長2048ビットを指定します。
# openssl genrsa -des3 -out www.example.jp.privkey.pem -rand ../rand.dat 2048

処理の途中でサーバ用パスフレーズの入力が求められるので、任意のパスフレーズを入力します。
Enter pass phrase for server.key : (パスフレーズ)
Verifying pass phrase for server.key :(パスフレーズの再入力)

3. CSRの作成

サーバ証明書を発行するためのCSR(署名要求)ファイルを作成します。
# openssl req -new -key www.example.jp.privkey.pem -out www.example.jp.csr.pem

処理の途中でサーバ用パスフレーズの入力が求められるので、サーバ用秘密鍵のパスフレーズを入力します。
Enter pass phrase for server.key : (パスフレーズ)

続いて、証明書の情報を入力します。
【国コード】
Country Name (2 letter code) [XX]:JP
【都道府県名】
State or Province Name (full name) []:Tokyo
【市区町村名】
Locality Name (eg, city) [Default City]:Minato-ku
【組織名称】
Organization Name (eg, company) [Default Company Ltd]:My Company Inc.
【所属名称】
Organizational Unit Name (eg, section) []:IT Group
【サーバ名(FQDN)】
Common Name (eg, your name or your server's hostname) []:www.example.jp
【管理者Email】
Email Address []:
この後、パスワードおよび会社名称の入力を求められますが、[Enter]を押して空白とします。
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:

作成したCSRファイルの内容を確認したい場合は、以下のコマンドを実行します。
# openssl req -text -noout -in www.example.jp.csr.pem
もしくは以下のサイトで確認します。
CSRの内容確認ツール


ここで一旦作業を終了して、GlobalSignにSSLサーバ証明書の申込を行います。


4. サーバ証明書ファイルの作成

(1) 申込/承認手続き
SSLサーバ証明書の申込を行いますと、「グローバルサイン/承認手続きのお知らせ」というメールが送信されてきます。
ここに記載されているURLを実行して、承認手続きを行います。
お申し込みをされたコモンネームに間違いがなければ、以下のURLにアクセス
して承認手続きをお願いいたします。
 
https://regist.globalsign.com/ra/dvApproval/dvApproval/DvApproval.do?r=9a85147d&e=6285680d402c58&c=ab59960b1547e1ec0245407cf2c32e77e10c12xx
※上記URLはサンプルです。実行してもエラーとなりますので実行しないで下さい。

(2) SSLサーバ証明書ファイルの作成
SSLサーバ証明書が発行されると、「[グローバルサイン]サーバ証明書発行のお知らせ」というメールが送信されてきます。
このメールの「◆証明書 SHA256」という項目の「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までを選択してコピーします。
-----BEGIN CERTIFICATE-----
MIIFFjCCA/6gAwIBAgIMf2FxwN92ZYmuI43xMA0GCSqGSIb3DQEBCwUAMGAxCzAJ
(・・・省略・・・)
QrqQPxfV2R4k1A==
-----END CERTIFICATE-----
 
次にエディタソフト等で新規ファイルを作成し、ペーストします。
そして「名前を付けて保存」で「www.example.jp.cert.pem」というファイル名で保存します。
※改行形式が指定できる場合には「LFのみ」にして下さい。

(3) 中間CA証明書ファイルの作成
■Apache2.2/Apache2.4.8以前の場合
同様に「◆中間CA証明書」という項目の「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までを選択してコピーします。
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
(・・・省略・・・)
EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
-----END CERTIFICATE-----
 
次にエディタソフト等で新規ファイルを作成し、ペーストします。
そして「名前を付けて保存」で「inca.pem」というファイル名で保存します。
※改行形式が指定できる場合には「LFのみ」にして下さい。

■Apache2.4.8以降の場合
SSLサーバ証明書ファイルの下に追加してペーストして下さい。

(4) サーバへアップロード
作成した各SSLサーバ証明書の関連ファイルをサーバへアップロードします。
※【例】/etc/httpd/certs/2016

5. サービス起動用秘密鍵の作成

2.で作成したサーバ用秘密鍵のままhttpdを起動させると、起動するたびにパスフレーズの入力が必要となり、自動起動できなくなりますので、秘密鍵からパスフレーズを削除します。
# cd /etc/httpd/certs
# openssl rsa -in www.example.jp.privkey.pem -out www.example.jp.privkey_nopwd.pem

処理の途中でサーバ用パスフレーズの入力が求められるので、サーバ用秘密鍵のパスフレーズを入力します。
Enter pass phrase for server.key : (パスフレーズ)

6. フォルダのアクセス権の設定

秘密鍵や証明書のファイルに、root以外からアクセスできないようにフォルダにアクセス権を設定します。
# chmod -R 400 /etc/httpd/certs

7. Apacheでの設定

SSL設定ファイル「/etc/httpd/conf.d/ssl.conf」に作成したファイル名を記述します。
# vi /etc/httpd/conf.d/ssl.conf

■Apache2.2 / 2.4.7までの場合
【例】
SSLCertificateFile /etc/httpd/certs/2016/www.example.jp.cert.pem
SSLCertificateKeyFile /etc/httpd/certs/2016/www.example.jp.privkey_nopwd.pem
SSLCertificateChainFile /etc/httpd/certs/2016/inca.pem

■Apache2.4.8以降の場合
【例】
SSLCertificateFile /etc/httpd/certs/2016/www.example.jp.cert.pem
SSLCertificateKeyFile /etc/httpd/certs/2016/www.example.jp.privkey_nopwd.pem
※「SSLCertificateChainFile」項目がありません。

Apacheにおいて、エラーがないかチェックをします。
# /usr/sbin/apachectl configtest
ここで、「Syntax OK」と表示されればOKです。
エラーが表示された場合には、エラーの原因を修正して下さい。

設定が完了したら、Apacheを再起動します。
■CentOS 7の場合
# systemctl restart httpd.service

■CentOS 6の場合
# service httpd restart

8. SSLサーバ証明書の整合性の確認

(1) SSLサーバ証明書と中間証明書の整合性の確認
SSLサーバ証明書のissuerと中間証明書のsubjectが同じ値になれば整合性があると判断できます。
openssl x509 -issuer -hash -noout -in (証明書ファイル)
 
openssl x509 -subject -hash -noout -in (中間証明書ファイル)
 

(2) SSLサーバ証明書と秘密鍵の整合性の確認
SSLサーバ証明書のmodulusと秘密鍵のmodulusが一致すれば、整合性が確認できます。
openssl x509 -noout -modulus -in (証明書ファイル)
openssl rsa -noout -modulus -in (秘密鍵ファイル)

9. SSLサーバ証明書のセキュリティのチェック

以下のサイトで、SSLサーバ証明書のセキュリティのチェックを行います。
Qualis SSL Server Test



最終更新:2020年02月27日 17:54