このサイトで紹介しているSSLサーバー構築の際に必要な証明書作成方法をまとめています。
SSL(Secure Socket Layer v2/v3 )はもともとNetscape社が開発した暗号化プロトコルですが、現在では世界標準化された暗号化プロトコルTLS(Transport Layer Security v1)と共に、SSL/TLSと呼ばれています。
OpenSSLは、これらのSSL/TLS 暗号化プロトコルを利用するために必要な機能を提供するSSLツールキットです。MailサーバーやWebサーバーなどSSL通信を行うことで通信経路上 でのスニッフィング・改竄を防ぐ事が可能になります。オンライン決済業務など現在のe コマースを支える技術として利用されています。
SSL暗号化プロトコル実現において、以下の証明書を利用する二通りの方法があります。
[x509 CA署名型証明書]
第3者認証機関がサーバー管理者に発行した証明書で暗号路を実現する
[公開暗号鍵 自己証明型証明書]
それぞれの証明書で暗号路を実現する
いずれもSSL暗号化プロトコルを実現できますが、前者は、クライアント認証が可能で後者は出来ません。
クライアント認証とはサーバーがクライアント(ユーザ)に証明書の提示を求め、提示された証明書により本人であるか、あるいはCA(認証局)が発行した証 明書であるかを判断し、認証を許可する仕組みです。クライアント認証を利用するには、SSLに対応したサーバープログラムであってもクライアント認証に対応している必要があります。
ここでは、認証局(CA)とサーバーを同じホストで利用していますので、一人の人間が作業を行いますが、認証局管理者とサーバー管理者の異なる立場での作業となる事に留意する必要があります。
公の認証機関ベリサイン等で有償の証明書を受ける場合、4 の署名要求書を提出することでSSLサーバー化に必要な証明書を発行してもらいます。これには期限があり有償です。また、個人、自営業者は利用出来ません。
ウェブサーバーにおいて、自営業者などオンラインショッピングなどの決済手続きの保護を行う場合、ホスティングサービスなど間接的に提供されるSSL サービスを利用します。
これに対しOpenSSLを使用し、自分で認証局(CA)を立ち上げた場合、SSLサーバー化に必要な証明書を作成する事が出来ます。この自分で作成する SSL化に必要な証明書と、ベリサイン等で発行される証明書には大きな違いがあり、自CAで作成した証明書でSSLサーバーを不特定多数に公開する場合、 利用者には一定のセキュリティリスクを課す事になります。