サポート

[マネージドPKI] クライアント認証 Apacheの設定方法(SHA256証明書)

SSLクライアント認証を行うにあたって、Apache上でSSLサーバー認証を有効にしている必要があります。SSLサーバー証明書の設定詳細は弊社ウェブサイトを参照してください。

認証局証明書の用意

no01.gif以下のルート証明書、中間CA証明書を取得してください。 ルート証明書(R3) クライアント証明書用中間CA証明書v2(SHA256)

2016年7月11日以降に発行された証明書も利用する場合は、以下の中間CA証明書も取得してください。 クライアント証明書用中間CA証明書v3(SHA256)

no02.gif取得したファイルを以下の順で1つのファイルに結合し、サーバに保存します。

  • ルート証明書 GlobalSign
  • 中間CA証明書 GlobalSign PersonalSign 2 CA - SHA256 - G2
    (中間CA証明書 GlobalSign PersonalSign 2 CA - SHA256 - G3)

結合の例
-----BEGIN CERTIFICATE-----
   <ルート証明書>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
   <中間CA証明書>
-----END CERTIFICATE-----

保存先の例
/etc/httpd/conf/ssl.crt/root.pem

Apache設定ファイルの変更

Apacheのバージョン等により設定ファイル名、場所は多少異なりますがhttpd.conf 、ssl.conf、httpd-ssl.conf等の該当部分を設定します。

・クライアント認証用 認証局証明書の設定例
SSLCACertificateFile /etc/httpd/conf/ssl.crt/root.pem

・CRLファイルの設定例
SSLCARevocationFile /etc/httpd/conf/ssl.crl/crl.pem

・SSLクライアント認証の設定の有効化
SSLOptions +StdEnvVars
SSLVerifyClient require
SSLVerifyDepth 3
<Directory "/var/www/httpdocs/test">
SSLRequire %{SSL_CLIENT_S_DN} =~ m?/O=GlobalSign K\.K\./OU=Sales/?
</Directory>

SSLRequire で指定したクライアント証明書以外の接続を拒否するよう設定します。
専用BaseDNを利用することで、証明書のO(組織名)とOU(部門名)フィールドにはお客様固有の情報が設定されます。この部分をクライアント認証の設定にご利用ください。

CRL自動取得の設定前項で設定したCRLを自動で取得できるように設定します。
CRLは以下URLよりHTTPで取得することができます。手動で指定場所に保存する方法も考えられますが定期的に最新のCRLを取得するほうが望ましいです。 http://crl.globalsign.com/gs/gspersonalsign2sha2g2.crl http://crl.globalsign.com/gs/gspersonalsign2sha2g3.crl

ApacheはDER形式のCRLでは読み込めませんのでOpenSSLコマンドにてPEM形式に変換して利用します。
以下はサンプルスクリプトです。このようなスクリプトがcron設定等で自動的に実行されるようにしておきます。
サーバ環境によって一部設定が異なりますので、ご利用の環境に合わせて読み替えてください。

2016年7月11日以前に推奨される設定例

#!/bin/sh
wget 'http://crl.globalsign.com/gs/gspersonalsign2sha2g2.crl'
openssl crl -inform der -in gspersonalsign2sha2g2.crl -outform pem -out crl.pem

rm -f gspersonalsign2sha2g2.crl

/etc/rc.d/init.d/httpd graceful
# gracefulで問題のある環境ではrestartで対応ください
# /etc/rc.d/init.d/httpd restart

【事前告知】2016年7月11日以降に推奨される設定例 2016年7月11日以降に発行される証明書を利用する場合は、以下のような設定が必要です。

#!/bin/sh
wget 'http://crl.globalsign.com/gs/gspersonalsign2sha2g2.crl'
openssl crl -inform der -in gspersonalsign2sha2g2.crl -outform pem -out crl1.pem
out_1st=`openssl crl -in crl1.pem -CAfile ./root.pem`

wget 'http://crl.globalsign.com/gs/gspersonalsign2sha2g3.crl'
openssl crl -inform der -in gspersonalsign2sha2g3.crl -outform pem -out crl2.pem
out_2nd=`openssl crl -in crl2.pem -CAfile ./root.pem`

if [ ("" != "$out_1st")&&("" != "$out_2nd") ]
then
mv -f crl1.pem ./crl.pem
cat crl2.pem >> ./crl.pem
fi

rm -f gspersonalsign2sha2g2.crl
rm -f crl1.pem
rm -f gspersonalsign2sha2g3.crl
rm -f crl2.pem

/etc/rc.d/init.d/httpd graceful
# gracefulで問題のある環境ではrestartで対応ください
# /etc/rc.d/init.d/httpd restart

設定は以上で完了です。
Apacheを再起動し、有効なクライアント証明書でのアクセスが可能かご確認ください。

サポートサイト内検索

03-6370-6500 お気軽にお問い合わせください

音声ガイダンスが流れましたら、お問合わせの内容により以下の番号をプッシュしてください。

  1. 証明書のお申し込み、更新及びパスワードのお問い合わせ
  2. インストールなどの技術的なお問い合わせ
  3. 審査及び進捗確認に関するお問い合わせ
  4. その他のお問い合わせ(4を押した上で、以下の番号をお選びください。)
  5. お支払い、経理書類に関するお問い合わせ
  6. パートナー契約に関するお問い合わせ
  7. 総務へのご連絡

お問い合わせはこちら

SSLはグローバルサイン - © 2007-2016 GMO GlobalSign K.K. All rights reserved.