GlobalSign SSLサーバ証明書のインストール(クイック認証SSL)

GlobalSignのクイック認証SSLサーバ証明書の取得およびインストールを行います。
ドメイン名は、ここではwww.example.jpとします。
※ファイル名等やフォルダのパス等は任意です。この通りでなくても結構です。

1. 準備作業

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

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

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

(4) 年度フォルダの設定方法
年度フォルダ名を直接設定ファイルに指定すると、毎年年度を変更する必要があります。そこで、以下のようにすると、更新が楽になります。
  • 年度フォルダを作成します。(例: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ビットを指定します。
秘密鍵ファイル名 www.example.jp.privkey.pem
# openssl genrsa -des3 -out www.example.jp.privkey.pem -rand ../rand.dat 2048
※鍵長「2048」は絶対忘れないように!

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

3. CSRの作成

サーバ証明書を発行するためのCSR(署名要求)ファイルを作成します。
CSRファイル名 www.example.jp.csr.pem
# 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) []:
【サーバ名(FQDN)】
Common Name (eg, your name or your server's hostname) []:www.example.jp
【管理者Email】
Email Address []:
※「Organizational Unit Name」は空白にしておきます。
この後、パスワードおよび会社名称の入力を求められますが、[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の内容確認ツール

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

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

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


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


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

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

(2) SSLサーバ証明書ファイルの作成
SSLサーバ証明書が発行されると、「[グローバルサイン]サーバ証明書発行のお知らせ」というメールが送信されてきます。
Apacheのバージョンにより、作成方法が異なりますので注意して下さい。

(a) Apache2.4.8以降の場合
「証明書」+「中間CA証明書」を1つのファイルにまとめます。
証明書ファイル名 www.example.jp.full_cert.pem
  • 「◆証明書 SHA256」という項目の「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までを選択してコピーし、エディタで新規ファイルを作成し、ペーストします。
※改行形式が指定できる場合には「LFのみ」にして下さい。
-----BEGIN CERTIFICATE-----
MIIHEzCCBfugAwIBAgIMKlh6Jxww55SIGStPMA0GCSqGSIb3DQEBCwUAMGAxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTYwNAYDVQQDEy1H
(・・・省略・・・)
5G7eyEeGvaW61AP3yBp2QJ9Orho2bmAAjr3xRBVZWMoOCXc9HNIYYtddKtgvaTF7
G69l1VMIc2O6DKjnLYmte7NObxZDC404IRWMuyH/AI2XmMyniYvB
-----END CERTIFICATE-----
 
  • 次に「◆中間CA証明書」という項目の「-----BEGIN CERTIFICATE-----」から「-----END CERTIFICATE-----」までを選択してコピーし、さきほど新規で作成したファイルの「◆証明書 SHA256」の後にペーストします。
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
(・・・省略・・・)
tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
-----END CERTIFICATE-----
 
以下のようになります。
-----BEGIN CERTIFICATE-----
MIIHEzCCBfugAwIBAgIMKlh6Jxww55SIGStPMA0GCSqGSIb3DQEBCwUAMGAxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTYwNAYDVQQDEy1H
(・・・省略・・・)
5G7eyEeGvaW61AP3yBp2QJ9Orho2bmAAjr3xRBVZWMoOCXc9HNIYYtddKtgvaTF7
G69l1VMIc2O6DKjnLYmte7NObxZDC404IRWMuyH/AI2XmMyniYvB
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
(・・・省略・・・)
tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
-----END CERTIFICATE-----
 

(b)Apache2.2/Apache2.4.8以前の場合
「◆証明書 SHA256」と「◆中間CA証明書」の項目で、各ファイルに保存します。
証明書ファイル名 www.example.jp.cert.pem
-----BEGIN CERTIFICATE-----
MIIHEzCCBfugAwIBAgIMKlh6Jxww55SIGStPMA0GCSqGSIb3DQEBCwUAMGAxCzAJ
BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTYwNAYDVQQDEy1H
(・・・省略・・・)
5G7eyEeGvaW61AP3yBp2QJ9Orho2bmAAjr3xRBVZWMoOCXc9HNIYYtddKtgvaTF7
G69l1VMIc2O6DKjnLYmte7NObxZDC404IRWMuyH/AI2XmMyniYvB
-----END CERTIFICATE-----
 

中間CA証明書ファイル名 inca.pem
-----BEGIN CERTIFICATE-----
MIIEYzCCA0ugAwIBAgILBAAAAAABRE7wPiAwDQYJKoZIhvcNAQELBQAwVzELMAkG
(・・・省略・・・)
tywdO02L3ORkHQRYM68bVeerDL8wBHTk8w4vMDmNSwSMHnVmZkngvkA0x1xaUZK6
EjxS1QSCVS1npd+3lXzuP8MIugS+wEY=
-----END CERTIFICATE-----
 

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

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.4.8以降の場合
【例】
SSLCertificateFile /etc/httpd/certs/latest/www.example.jp.full_cert.pem
SSLCertificateKeyFile /etc/httpd/certs/latest/www.example.jp.privkey_nopwd.pem
※「SSLCertificateChainFile」項目がありません。

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

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

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

■CentOS 6の場合
# service httpd restart

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

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



最終更新:2021年12月09日 21:03