サポート

[マネージドPKI]クライアント認証 Nginxの設定方法

既に2020年11月10日以前に発行されたクライアント証明書をご利用で、2020年11月11日以降に発行されたクライアント証明書も併用して利用される場合

  1. GMOグローバルサイン
  2. サポート・お申し込みガイド
  3. マネージドPKI
  4. [マネージドPKI]クライアント認証 Nginxの設定方法
最終更新:2021/03/22 12:38:50

本ページは、2020年11月11日に実行される中間CA証明書の変更、及び2021年2月24日に実行される中間CA証明書の失効に伴い、2020年11月10日以前に発行されたクライアント証明書と、2020年11月11日以降に新しい中間CA証明書から発行されたクライアント証明書を併用してご利用になる場合の手順をご案内しております。
※以降、変更前の中間CA証明書を「旧中間CA証明書」、変更後の中間CA証明書を「新中間CA証明書」とします。
※2020年11月10日以前に旧中間CA証明書から発行されたクライアント証明書を使用できる期限は、旧中間CA証明書が失効される2021年2月24日までとなります。本件に関する詳細情報はこちらをご参照ください。

既に2020年11月10日以前に旧中間CA証明書から発行されたクライアント証明書をご利用のお客様は、新中間CA証明書を追加で設定してください。
また、新中間CA証明書から発行、または再発行される証明書のCRL配布ポイントやOCSPのURLも変更となります。
CRLの取得先URLをスクリプト等に直接記述して取得している場合は、新しいURLの追加や修正が必要となります。
※下記手順のCRL設定の項をご参照ください。

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

※弊社では以下の手順にて動作検証をおこなった際の一例をご紹介しており、動作を保証するものではございません。
本手順について内容の変更等や誤りがあった場合、弊社では一切の責任を負いかねることを予めご了承ください。

※Nginxはオープンソースのアプリケーションです。脆弱性などの問題がないか、随時情報を確認いただき、万一問題が発見された場合は、該当サービスの停止や、 対応パッチがリリースされている場合は速やかに適用するなど、運用には十分ご注意ください。 

本例はver 1.12.1で検証しております。

認証局証明書の用意

以下より、クライアント証明書のルート証明書を取得してください。
SHA256 ルート証明書(R3)

以下より、クライアント証明書の中間CA証明書を取得してください。
SHA256 クライアント証明書用中間CA証明書v3

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

取得したファイルを1つのファイルに結合し、サーバに保存します。順不同でもかまいません。
※既に2020年11月10日以前に旧中間CA証明書から発行されたクライアント証明書をご利用の場合は、以下のように新中間CA証明書も追加で結合します。

結合の例

-----BEGIN CERTIFICATE-----
   <ルート証明書>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
   <中間CA証明書>
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
   <新中間CA証明書>
-----END CERTIFICATE-----

保存先の例

/etc/nginx/root.pem

Nginx設定ファイルの変更

Nginxのバージョン等により設定ファイル名、場所は多少異なる場合がありますが、Nginxの設定ファイルの該当部分を設定します。

設定ファイル保存場所の例

/etc/nginx/nginx.conf

クライアント認証用 認証局証明書の設定例

ssl_client_certificate /etc/nginx/root.pem;

CRLファイルの設定例

ssl_crl /etc/nginx/crl.pem;

上記CRLファイル"crl.pem"をcron設定等で定期的に自動取得できるように設定しておくことを推奨します。
CRLファイルは、証明書の「CRL配布ポイント」に記載されているURLからHTTPで取得することができます。
手動で取得し指定場所に保存することも可能ですが、有効期限の切れたCRLは無効な情報と判断され、Nginxでは認証しません。定期的に最新のCRLを取得する必要があります。
※弊社CRLの有効期限は7日間となります。
※cron設定やOpenSSLコマンド、シェルスクリプトの作成につきましては、ドキュメント等をご参照いただき、ご利用の環境に合った設定をご確認ください。

NginxはDER形式のCRLは読み込めないので、OpenSSLコマンドにてPEM形式に変換して利用します。
CRLはクライアント証明書と中間CA証明書それぞれのCRLを「CRL配布ポイント」から取得し、全て結合します。
ご利用のクライアント証明書(エンドエンティティ証明書)、中間CA証明書のCRL配布ポイントをご確認ください。

※2020年11月11日以降に新中間CA証明書から発行されるクライアント証明書は、「CRL配布ポイント」のURLが変更となっております。
新中間CA証明書の「CRL配布ポイント」に変更はございません。
下記のCRL配布ポイントから取得できる新しいCRLを追加で設定してください。
また、中間CA証明書が失効される2021年2月24日以降は、旧中間CA証明書から発行されたクライアント証明書のCRLは不要となりますので取得を停止していただく事をお勧めします。

新CRL配布ポイント

http://crl.globalsign.com/gsgccr3personalsign2ca2020.crl

変換コマンド例

openssl crl -inform der -in 変換前DERファイル名 -outform pem -out 変換後PEMファイル名

結合コマンド例

cat 結合前ファイル名a 結合前ファイル名b 結合前ファイルc> 結合後ファイル名

結合の例

-----BEGIN X509 CRL-----
<中間CA証明書のCRL>
-----END X509 CRL-----
-----BEGIN X509 CRL-----
<旧中間CA証明書から発行されたクライアント証明書のCRL>
-----END X509 CRL-----
-----BEGIN X509 CRL-----
<新中間CA証明書から発行されたクライアント証明書のCRL>
-----END X509 CRL-----

SSLクライアント認証の設定の有効化

グレー文字の箇所はSSLサーバ証明書の設定です。

server { listen 443;
server_name ssl.globalsign.com;

ssl on;
ssl_certificate ssl.globalsign.com.pem;
ssl_certificate_key ssl.globalsign.com.key;

ssl_verify_client on;
ssl_verify_depth 3;
ssl_client_certificate /etc/nginx/root.pem;
ssl_crl /etc/nginx/crl.pem;

if ($ssl_client_s_dn !~ "O=GMO GlobalSign K.K."){
return 403;
}

if ($ssl_client_s_dn !~ "OU=Sales"){
return 403;
}

}

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

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

サポートサイト内検索

お気軽にお問い合わせください

03-6370-6500

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

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