Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ
OpenSSL(http://www.openssl.org) を Ruby から扱うためのライブラリです。
このドキュメントでは SSL/TLS の一般的事項については 解説をしません。利用者は、SSL/TLSの各概念、例えば 以下の事項について理解している必要があります。
SSLのようなセキュリティ技術は、その利用者に無条件に安全性を 提供することはできません。利用者、とくにSSLでソフトウェアを実装する プログラマは、 SSL/TLS の技術、それが基づいている概念を理解し、 ライブラリを適切に利用する必要があります。
OpenSSL は SSL/TLS による通信を提供する高水準なインターフェースと より基本的な機能を提供する低水準なインターフェースがあります。 基本的には高水準なインターフェースのみを利用すべきです。
低水準なインターフェースを利用する場合には、利用したい機能に 関する十分な知識と注意深さが必要となります。
自己署名証明書の作成の例です。自分の秘密鍵で自分の公開鍵に署名しているから自己署名です。
require 'openssl' key = OpenSSL::PKey::RSA.new(1024) digest = OpenSSL::Digest::SHA1.new() issu = sub = OpenSSL::X509::Name.new() sub.add_entry('C', 'JP') sub.add_entry('ST', 'Shimane') sub.add_entry('CN', 'Ruby Taro') cer = OpenSSL::X509::Certificate.new() cer.not_before = Time.at(0) cer.not_after = Time.at(0) cer.public_key = key # <= 署名する対象となる公開鍵 cer.serial = 1 cer.issuer = issu cer.subject = sub cer.sign(key, digest) # <= 署名するのに使う秘密鍵とハッシュ関数 print cer.to_text