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