FujiSSLクライアント証明書を使ってWordPressの管理画面のアクセス制御を行う

WordPressの管理者IDは「URL/?author=1」でアクセスを行うとリダイレクトが行われ「URL/author/管理者ID/」が表示されるため誰でも簡単に管理者IDを知ることができます。

この管理者IDでパスワードの総当たり攻撃を仕掛けれられればクラッカーのログインを許してしまいます。

これを防衛するためにログインURLを変更したりユーザIDを秘匿するなどで対処することもできますがこれは時間稼ぎでしかありません。
また、侵入者はクラッカーだけでなく、ユーザID、パスワードを類推できる元従業員や外部委託の人間からの侵入の恐れも考えられます。
企業の運営するWEBサイトが改竄されるようでは信頼問題につながります。

そこでFujiSSLクライアント証明書(年間2,000円)を使いアクセス制御を行えば、クライアント証明書がインストールされたデバイス以外からのアクセスを遮断することができるためユーザID,パスワードを類推した侵入を防衛することができます。

FuijSSLクライアント証明書の発行申請

FujiSSLクライアント証明書は専用の管理画面が用意されており証明書の配布、失効、更新が簡単に行えます。まずFujiSSL Client Authentication Centerに会員登録を行いログインします。


入力項目を埋め「上記の内容にて確認へ進む」を押下します。ここで入力したメールアドレスに対してクライアント証明書を発行します。

ブラウザへのインストール


発行申請で入力したメールアドレス宛てに案内が届きます。


しばらくすると2通目のメールが届きます。Windowsの場合はインターネットエクスプローラー、Macの場合はFirefoxで認証用ページへアクセスしてください。


認証用ページにアクセスします。先ほど届いたメールに記載されているクライアント証明書を発行するメールアドレス、コレクションコードをコピーペーストしチェックボックスをチェックします。


Request My Certificate Nowボタンをクリックします。


はいを押下します。


これでご利用中のOSにクライアント証明書がインストールされます。この時点からChrome、Firefox、Edge、Safariなどのブラウザからもクライアント証明書を利用することができるようになります。

事前準備

クライアント証明書を利用するためにはSSLサーバ証明書が必要です。アクセス制限を行うWEBサイトの常時SSL化を済ましてください。

WEBサーバの設定

準備中

WordPressの設定


wordpressの常時SSL化を行います。URLをhttpsとしてください。

Apacheの設定

準備中

nginxの設定
server {

・・・省略

     ssl_verify_client optional;
     ssl_verify_depth 3;
     ssl_client_certificate /etc/nginx/conf.client/fujissl.crt;

     location ~* /wp-login\.php|/wp-admin/((?!admin-ajax\.php).)*$ {

         if ($ssl_client_serial !~* ^(a611029c61393dfe764e27081f3c3a7e|F0C0625B207F39F6899FE3B3890B96C3)$) {
             return 403;
         }
    }

・・・省略

}

WordPressの管理画面に証明書のプロパティに載っているシリアル番号以外からのアクセスの場合403エラー(閲覧禁止)を返します。

CRL自動取得の設定

証明書の失効リストの自動取得を行います。

動作検証


クライアント証明書のインストールされていないデバイスからアクセスして403エラーが出たら成功です。

クライアント証明書の失効

利用中の証明書の秘密鍵が漏洩した場合、デバイスを紛失した場合、クライアント証明書の失効処理を行います。これにより失効した証明書での認証を不能にすることができます。


ホーム画面より失効処理をしたい証明書の詳細ボタンを押下します。


証明書を失効するボタン押下で証明書は失効されます。

FujiSSLクライアント証明書はWordpressのみならず、会員制サイト、ログインが必要なサイト、社内システム等でもご利用いただけます。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>