@techreport{oai:ipsj.ixsq.nii.ac.jp:00178977,
 author = {松本, 亮介 and 三宅, 悠介 and 力武, 健次 and 栗林, 健太郎 and Ryosuke, Matsumoto and Yusuke, Miyake and Kenji, Rikitake and Kentaro, Kuribayashi},
 issue = {1},
 month = {May},
 note = {インターネットの利用に際して,ユーザーや企業においてセキュリティ意識が高まっている.また,HTTP のパフォーマンス上の問題を解消するために,HTTP/2 が RFC として採択された.それらを背景に,常時 HTTPS 化が進む中で,高集積マルチテナント方式の Web サーバで管理している大量のホストも HTTPS 化を進めていく必要がある.同方式は単一のサーバプロセスで複数のホストを管理する必要があるが,Web サーバの標準的な設定を用いて事前にホスト数に依存した数の証明書を読み込んでおく方法では,必要なメモリ使用量が増大することで,サーバプロセスの起動時や,CGI のようなプロセスの複製時に OS のページテーブルのエントリ数に依存するシステムコールの性能が著しく低下する.そこで,Server Name Indication (SNI) を利用可能である条件下において,事前にサーバプロセスに証明書を読み込んでおくことなく,SSL / TLS ハンドシェイク時にホスト名から動的にホストに紐づく証明書を読み込み,メモリ使用量を低減させる手法を提案する.実装には,我々が開発した,mruby を用いて高速かつ少ないメモリ使用量で Web サーバの機能を拡張するモジュール ngx mruby を採用して,動的にサーバ証明書を選択する機能を実装した.また,サーバ証明書データは,Redis によるキャッシュサーバによって管理し,本手法の有効性を評価した., Introducing HTTPS to a large number of the hosts supervised under highly-integrated multi-tenant Web servers is critical to meet the security demand of the individual and corporate users, and to comply with the HTTP/2, an RFC to solve the HTTPS performance issues. Preloading the massive number of certificates for managing a large number of hosts under the single server process results in increasing the required memory usage due to the respective page table entry manipulation, which may largely degrade the performance of system calls during the creation of the server process and process replication required for CGI invocation. To solve this issue, we propose a method to dynamically load the certificates bound to the hostnames found during the SSL/TLS handshake sequences without preloading, provided the Server Name Indication (SNI) extension is available. We implement the function of choosing the respective certificates with ngx mruby module, which we developed to extend Web server functions using mruby with small memory footprint while maintaining the execution speed. We also evaluate the feasibility of our proposal with a cache server of the server certificate data running on Redis.},
 title = {高集積マルチテナントWebサーバの大規模証明書管理},
 year = {2017}
}