クライアント認証(証明書認証)は、SSL環境を設定して、SSL通信時にクライアントから送信されるクライアント証明書によりアクセス制御を行います。
クライアント認証(証明書認証)を設定するための手順を以下に示します。
SSL環境の設定については、「3.9 SSLの設定」を参照してください。
クライアント認証局の証明書(発行局証明書)の配置
クライアント証明書を発行した認証局証明書(ca.pem)は以下のディレクトリに配置してください。
move ca.pem c:\ahs\sslenv\sslcert\cert
# mv ca.pem /export/home/ahs/sslcert/cert
クライアント証明書を発行した認証局がルートCA証明書(client-root-ca.pem)、中間CA証明書(client-chain-ca.pem)を発行している場合は認証局証明書にマージして使用します。
ルートCA証明書(client-root-ca.pem)、中間CA証明書(client-chain-ca.pem)を認証局証明書にマージします。
type client-chain-ca.pem >> c:\ahs\sslenv\sslcert\cert\ca.pem type client-root-ca.pem >> c:\ahs\sslenv\sslcert\cert\ca.pem type c:\ahs\sslenv\sslcert\cert\ca.pem (内容を表示します) -----BEGIN CERTIFICATE----- … (認証局証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
… (中間CA証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
… (ルートCA証明書データ) … -----END CERTIFICATE-----
ルートCA証明書(client-root-ca.pem)、中間CA証明書(client-chain-ca.pem)を認証局証明書にマージします。
# cat client-chain-ca.pem >> /export/home/ahs/sslcert/cert/ca.pem # cat client-root-ca.pem >> /export/home/ahs/sslcert/cert/ca.pem # cat /export/home/ahs/sslcert/cert/ca.pem (内容を表示します) -----BEGIN CERTIFICATE----- … (認証局証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
… (中間CA証明書データ) … -----END CERTIFICATE----- -----BEGIN CERTIFICATE-----
… (ルートCA証明書データ) … -----END CERTIFICATE-----
注意
SSL運用で使用する証明書(サイト証明書やクライアント証明書)を発行した認証局のルートCA証明書は、接続相手の製品でも登録されている必要があります。
CRLの配置
CRLで失効確認をしない場合には、CRLを配置する必要はありません。
CRLで失効確認をする場合には、CRLは定期的に発行されるため、定期的に最新のCRLを取得し配置するようにしてください。
取得したCRLは以下のディレクトリに配置してください。
move crl_list.crl c:\ahs\sslenv\sslcert\crl
# mv crl_list.crl /export/home/ahs/sslcert/crl
注意
ApacheはDER形式のCRLは読み込めないため、OpenSSLコマンドにてPEM形式に変換して利用します。
c:\Interstage\F3FMahs\bin\openssl.exe crl -inform der 変換前DERファイル名 -outform pem -out 変換後PEMファイル名
/opt/FJSVahs/oss/openssl/bin/openssl crl -inform der 変換前DERファイル名 -outform pem -out 変換後PEMファイル名
CRLファイルが複数ある場合はファイルをマージして配置してください。
複数CRLファイルをマージします。
type crl_list1.pem > c:\ahs\sslenv\sslcert\cert\crl_list.crl
type crl_list2.pem >> c:\ahs\sslenv\sslcert\cert\crl_list.crl
type c:\ahs\sslenv\sslcert\cert\crl_listcrl (内容を表示します)
-----BEGIN X509 CRL-----
… (CRLファイル(1)データ) …
-----END X509 CRL-----
-----BEGIN X509 CRL-----
… (CRLファイル(2)データ)…
-----END X509 CRL-----
複数CRLファイルをマージします。
# cat /export/home/ahs/sslcert/crl/crl_list1.pem > /export/home/ahs/sslcert/crl/crl_list.crl
# cat /export/home/ahs/sslcert/crl/crl_list2.pem >> /export/home/ahs/sslcert/crl/crl_list.crl
# cat /export/home/ahs/sslcert/crl/crl_list.crl (内容を表示します)
-----BEGIN X509 CRL-----
… (CRLファイル(1)データ) …
-----END X509 CRL-----
-----BEGIN X509 CRL-----
… (CRLファイル(2)データ)…
-----END X509 CRL-----
CRLはSSLの設定を行った後、Webサーバを起動することで取り込み処理を実行します。
また、Webサーバを停止せずCRLを取り込む場合は、httpdコマンドを使用してください。
C:\Interstage\F3FMahs\bin\httpd.exe -k load-crl -n "Interstage HTTP Server 2.4"
/opt/FJSVahs/bin/httpd -k load-crl -f /opt/FJSVahs/conf/httpd.conf
■環境定義ファイル(httpd.conf)の設定
環境定義ファイル(httpd.conf)の設定方法を以下に示します。
Listen 443 DocumentRoot /var/www/html ServerName www.yourdomain.com SSLEngine on SSLProtocol TLSv1.2 +TLSv1.3 SSLCertificateFile /export/home/ahs/sslcert/server.pem SSLCertificateKeyFile /export/home/ahs/sslcert/server.key SSLCACertificateFile /export/home/ahs/sslcert/cert/ca.pem (1) SSLVerifyClient require (2) SSLVerifyDepth 5 (3) SSLCARevocationCheck chain (4) SSLCARevocationFile /export/home/ahs/sslcert/crl/crl_list.crl (5)
(1) SSLCACertificateFile ディレクティブに クライアント認証した認証局の証明書を設定します。
(2) SSLVerifyClient ディレクティブに 「require」を設定し、クライアント認証を必須とします。
(3) SSLVerifyDepth ディレクティブに認証局チェーン内の検索階層最大数を設定します。
(4) SSLCARevocationCheck ディレクティブに「chain」を設定し、証明書失効リストチェックを有効にします。
(5) SSLCARevocationFile ディレクティブにCRLリストファイルへのフルパスを設定します。