CentOS7.2 64bit Apache2.4 SSLクライアント証明書を使用したアクセス制御

CentOS7.2 64bit Apache2.4 SSLクライアント証明書を使用したアクセス制御

外部に公開しているWebサイト等でアクセス制限を行いたい場合、ユーザーIDとパスワードの入力による認証や、ファイアウォールを使用してアクセス元のIPアドレスによる制限を行うこともできますが、SSLクライアント証明書を使用することで、特定の証明書を所有する端末からのアクセスのみを許可するように制限することができます。

ここでは、CentOS7.2の標準リポジトリからインストールできるApache2.4.6で、SSLクライアント証明書を使用したアクセス制御を行う方法を、以下に示します。

※SSLクライアント証明書の作成については、当サイトのCentOS7 64bit OpenSSLを使用して自己認証局で署名したSSLクライアント証明書を作成のページをご覧ください。

※SSLクライアント証明書のWindows、Macへのインストール(インポート)については、当サイトのSSLクライアント証明書をWindows、Macにインストール(インポート)のページをご覧ください。

Apacheのインストール

Apacheがインストールされていない場合は、以下のコマンドを実行して、Apacheのインストールを行います。

# yum install httpd

mod_sslのインストール

ApacheでSSLを使用する際には、mod_sslが必要となります。

mod_sslがインストールされていない場合は、以下のコマンドを実行して、mod_sslのインストールを行います。

# yum install mod_ssl

firewalldによるアクセス制御

firewalldを使用している場合は、HTTP、HTTPSでの外部からのアクセスを許可する必要があります。

firewalldによるアクセス制御については、当サイトのCentOS7 64bit firewalldによるアクセス制御のページをご覧ください。

ApacheのSSLの設定ファイルの編集

ApacheでSSLクライアント証明書を使用したアクセス制御を行うには、mod_sslの設定ファイル「/etc/httpd/conf.d/ssl.conf」で、以下のように指定します。

:(略) <,VirtualHost _default_:443>, :(略) #SSLVerifyClient require ↓変更 SSLVerifyClient require 
:(略) <,VirtualHost _default_:443>, :(略) #SSLVerifyDepth 10 ↓変更 SSLVerifyDepth 1 
:(略) <,VirtualHost _default_:443>, :(略) #SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt ↓変更 SSLCACertificateFile /xxx/ssl/ca.crt 
  • クライアント認証にSSLクライアント証明書を使用するには、「SSLVerifyClient」に「require」と指定します。

  • 「SSLVerifyDepth」には、SSLクライアント証明書に署名した認証局の階層の最大数を指定します。

    「0」を指定すると、自己署名のSSLクライアント証明書のみが使用可能となります。

    「1」を指定すると、自己署名のSSLクライアント証明書と、「SSLCACertificateFile」で指定している認証局の証明書で署名したSSLクライアント証明書が使用可能となります。

    自己署名のSSLクライアント証明書は、1つのみしか使用することができませんが、認証局で署名したSSLクライアント証明書であれば、複数のものを使用することができ、クライアント毎に異なるSSLクライアント証明書を配布することが可能になります。

  • 「SSLCACertificateFile」には、SSLクライアント証明書に署名した認証局の証明書のファイルのパスを指定します。

    自己署名のSSLクライアント証明書を使用する場合は、ここに指定する証明書はSSLクライアント証明書と同じものになります。

SELinuxによるアクセス制御

SELinuxを使用している場合は、SSLクライアント証明書に署名した認証局の証明書の配置場所によっては、SELinuxによって読み込みが拒否されてしまいます。

SELinuxによるアクセス制御については、当サイトのCentOS7 64bit SELinuxによるアクセス制御のページをご覧ください。

CentOS7.2 64bit Apache2.4 SSLクライアント証明書を使用したアクセス制御については、以上です。

Apacheに関するおすすめの書籍

当サイトの書籍紹介ページで、Apacheに関するおすすめの書籍の紹介も行っておりますので、ご覧ください。

Webセキュリティに関するおすすめの書籍

当サイトの書籍紹介ページで、Webセキュリティに関するおすすめの書籍の紹介も行っておりますので、ご覧ください。

暗号技術に関するおすすめの書籍

当サイトの書籍紹介ページで、暗号技術に関するおすすめの書籍の紹介も行っておりますので、ご覧ください。