ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

CentOS 8.1とApache 2.4.46の環境に、SSLサーバー証明書を設定

新たに本番環境の構築を行いました。
これまでとは違うデータセンターにサーバーの構築を行うため、いろいろと自分達で設定を行わなければなりませんでした。

SSLサーバー証明書の設定も、自分達で行わなければならない設定作業の一つです。

証明書の取得は、代行してもらいました。
発行されたのは、GMOグローバルサインが認証局の証明書です。

GMOグローバルサインにはサポートサイトがあり、証明書のインストール方法のページがあります。
jp.globalsign.com

今回は、[インストール] Apache 2.x + mod_ssl + OpenSSL(新規・更新)のページが該当します。
jp.globalsign.com

GMOグローバルサインのサポートページに書かれている通りに作業していけば、設定はできます。

環境情報

今回の本番環境では、以下のファイル名、パス名で設定しました。
(www.example.comは、実際とは異なります。)

コモンネーム www.example.com
confディレクトリまでのパス /usr/local/apache2/conf/
SSL設定用confファイル /usr/local/apache2/conf/extra/httpd-ssl.conf
証明書の保存ディレクトリ /usr/local/apache2/conf/ssl.crt/
サーバ証明書ファイル名 www.example.com.crt
秘密鍵の保存ディレクトリ /usr/local/apache2/conf/ssl.key/
秘密鍵ファイル名 www.example.com.key

GMOグローバルサインのサポートページには、環境の情報に、秘密鍵の保存ディレクトリが書かれていませんでした。
GMOグローバルサインのサポートページを読んでいくと、/etc/httpd/conf/ssl.key/ssl.globalsign.com.keyを、ssl.confに設定すると書かれていて、秘密鍵の保存ディレクトリと秘密鍵ファイル名がわかったので、真似をしました。

サーバ証明書ファイルの作り方

viエディタで、証明書と中間CA証明書を、1ファイルとして以下のように続けてペーストして、作成しました。
−−−−−BEGIN CERTIFICATE−−−−−
省略
−−−−−END CERTIFICATE−−−−−
−−−−−BEGIN CERTIFICATE−−−−−
省略
−−−−−END CERTIFICATE−−−−−

Apache 2.4.8以降は、中間CA証明書単独の設定がなくなったためです。

秘密鍵ファイルの作り方

viエディタで、以下のようにペーストして、作成しました。
−−−−−BEGIN RSA PRIVATE KEY−−−−−
省略
−−−−−END RSA PRIVATE KEY−−−−−

設定後のApache再起動

必要なディレクトリの作成および、サーバ証明書ファイル、秘密鍵ファイルを作成し、設定ファイルを変更後、

# apachectl configtest

を行って、構文チェックを行いました。

Syntax OK

が表示されたので、Apacheの再起動を行います。

# systemctl restart httpd

Apacheの再起動を行いました。

ブラウザでアクセスして、証明書を表示して確認を行いました。

パスフレーズが求められない

GMOグローバルサインのサポートページには、Apacheの起動時にパスフレーズの入力が必要とあります。
パスフレーズの解除の方法も書かれていました。
Apacheを再起動をしたら入力を求められるものだと思っていたら、入力を求められませんでした。

検索してみると、今回作成した鍵ファイルは、既にパスフレーズが解除された状態で作成したようです。
rms.ne.jp


初めての作業で、何度も確かめながらでしたが、2時間かからないで終わりました。
一度やってみると、経験値があがります。