Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > opensslライブラリ
OpenSSL(https://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
OpenSSL::ASN1::ASN1Data | ASN.1 データ型を表すクラス。 |
OpenSSL::ASN1::Constructive | ASN.1 の構造型を表すクラスです。 |
OpenSSL::ASN1::Sequence | ASN.1 の Sequence 型(Universal タグのタグ番号16)を表すクラスです。 |
OpenSSL::ASN1::Set | ASN.1 の Set 型(Universal タグのタグ番号17)を表すクラスです。 |
OpenSSL::ASN1::Primitive | ASN.1 の単純型を表すクラスです。 |
OpenSSL::ASN1::BMPString | ASN.1 の BMPString 型(Universal タグのタグ番号30)を表すクラスです。 |
OpenSSL::ASN1::BitString | ASN.1 の Bit String 型(Universal タグのタグ番号3)を表すクラスです。 |
OpenSSL::ASN1::Boolean | ASN.1 の Boolean 型(Universal タグのタグ番号1)を表すクラスです。 |
OpenSSL::ASN1::Enumerated | ASN.1 の Enumerated 型(Universal タグのタグ番号10)を表すクラスです。 |
OpenSSL::ASN1::GeneralString | ASN.1 の GeneralString 型(Universal タグのタグ番号27)を表すクラスです。 |
OpenSSL::ASN1::GeneralizedTime | ASN.1 の GeneralizedTime 型(Universal タグのタグ番号23)を表すクラスです。 |
OpenSSL::ASN1::GraphicString | ASN.1 の GraphicString 型(Universal タグのタグ番号25)を表すクラスです。 |
OpenSSL::ASN1::IA5String | ASN.1 の IA5String 型(Universal タグのタグ番号22)を表すクラスです。 |
OpenSSL::ASN1::ISO64String | ASN.1 の ISO64String 型(Universal タグのタグ番号26)を表すクラスです。 |
OpenSSL::ASN1::Integer | ASN.1 の Integer 型(Universal タグのタグ番号2)を表すクラスです。 |
OpenSSL::ASN1::Null | ASN.1 の Null 型(Universal タグのタグ番号5)を表すクラスです。 |
OpenSSL::ASN1::NumericString | ASN.1 の NumericString 型(Universal タグのタグ番号18)を表すクラスです。 |
OpenSSL::ASN1::ObjectId | ASN.1 のオブジェクト識別子を表すクラス。 |
OpenSSL::ASN1::OctetString | ASN.1 の Octet String 型(Universal タグのタグ番号4)を表すクラスです。 |
OpenSSL::ASN1::PrintableString | ASN.1 の PrintableString 型(Universal タグのタグ番号19)を表すクラスです。 |
OpenSSL::ASN1::T61String | ASN.1 の T61String 型(Universal タグのタグ番号20)を表すクラスです。 |
OpenSSL::ASN1::UTCTime | ASN.1 の UTCTime 型(Universal タグのタグ番号23)を表すクラスです。 |
OpenSSL::ASN1::UTF8String | ASN.1 の UTF8String 型(Universal タグのタグ番号12)を表すクラスです。 |
OpenSSL::ASN1::UniversalString | ASN.1 の UniversalString 型(Universal タグのタグ番号28)を表すクラスです。 |
OpenSSL::ASN1::VideotexString | ASN.1 の VideotexString 型(Universal タグのタグ番号21)を表すクラスです。 |
OpenSSL::BN | OpenSSL内で利用される多倍長整数クラスです。 |
OpenSSL::Cipher | 共通鍵暗号のために抽象化されたインターフェースを提供するクラスです。 |
OpenSSL::Cipher::AES | AES 暗号を表すクラス |
OpenSSL::Cipher::AES128 | 鍵長 128 ビットの AES 暗号を表すクラス |
OpenSSL::Cipher::AES192 | 鍵長 192 ビットの AES 暗号を表すクラス |
OpenSSL::Cipher::AES256 | 鍵長 256 ビットの AES 暗号を表すクラス |
OpenSSL::Cipher::BF | BF(BlowFish)暗号を表すクラス |
OpenSSL::Cipher::CAST5 | CAST5 暗号を表すクラス |
OpenSSL::Cipher::Cipher | このクラスは互換性のために存在します。 |
OpenSSL::Cipher::DES | DES 暗号を表すクラス |
OpenSSL::Cipher::IDEA | IDEA 暗号を表すクラス |
OpenSSL::Cipher::RC2 | RC2 暗号を表すクラス |
OpenSSL::Cipher::RC4 | RC4 暗号を表すクラス |
OpenSSL::Cipher::RC5 | RC5 暗号を表すクラス |
OpenSSL::Config | OpenSSL の設定ファイルを表すクラスです。 |
OpenSSL::Engine | OpenSSL の Engine (プラグイン)を表すオブジェクトです。 |
OpenSSL::HMAC | HMAC を表すクラス。 |
OpenSSL::Netscape::SPKI | Netscape SPKI、もしくは SPKAC(Signed Public Key And Challenge) と呼ばれる データフォーマットを扱うためのクラスです。 |
OpenSSL::OCSP::BasicResponse | OCSP の Basic OCSP Response を表すクラスです。 |
OpenSSL::OCSP::CertificateId | 失効状態を問い合わせたい個々の証明書を表すクラスです。 |
OpenSSL::OCSP::Request | OCSP リクエストを表すクラスです。 |
OpenSSL::OCSP::Response | OCSP レスポンダからのレスポンスを表わすオブジェクトです。 |
OpenSSL::PKCS7 | PKCS #7 クラス |
OpenSSL::PKCS7::PKCS7 | このクラスは 1.8.6 以前との互換性のために存在します。 |
OpenSSL::PKCS7::RecipientInfo | PKCS7 の送信先を表すクラスです。 |
OpenSSL::PKCS7::Signer | Alias of OpenSSL::PKCS7::SignerInfo |
OpenSSL::PKCS7::SignerInfo | 署名者の情報を表すクラスです。 |
OpenSSL::PKey::EC::Group | 楕円曲線から定義される群を表すクラスです。 |
OpenSSL::PKey::EC::Point | 楕円曲線暗号の公開鍵となる曲線上の点を表します。 |
OpenSSL::PKey::PKey | 公開鍵暗号のための抽象クラスです。 |
OpenSSL::PKey::DH | Diffie-Hellman 鍵共有クラス |
OpenSSL::PKey::DSA | DSA 公開鍵暗号クラス |
OpenSSL::PKey::EC | EC(Ellicptic Curve,楕円曲線)暗号鍵のクラスです。 |
OpenSSL::PKey::RSA | RSA 暗号鍵のクラスです。 |
OpenSSL::SSL::SSLContext | SSL コンテキストクラス。 |
OpenSSL::SSL::SSLServer | SSL サーバーのためのクラス。 |
OpenSSL::SSL::SSLSocket | ソケットをラップして SSL での認証と暗号通信を実現するためのクラスです。 |
OpenSSL::SSL::Session | SSL/TLS セッションを表すクラスです。 |
OpenSSL::X509::Attribute | X.509 証明書署名要求の attribute を表すクラスです。 |
OpenSSL::X509::CRL | CRL(証明書失効リスト) クラス。 |
OpenSSL::X509::Certificate | X509 証明書クラス |
OpenSSL::X509::Extension | X.509 v3 証明書の拡張領域のためのクラスです。 |
OpenSSL::X509::ExtensionFactory | OpenSSL::X509::Extension を簡便に生成するための クラスです。 |
OpenSSL::X509::Name | X.500の識別名(DN, Distinguished Name)を表わすクラス。 |
OpenSSL::X509::Request | X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす クラスです。 |
OpenSSL::X509::Revoked | 失効した証明書のクラス。 |
OpenSSL::X509::Store | 証明書ストアクラス。 |
OpenSSL::X509::StoreContext | 証明書ストアコンテキストクラス。 |
OpenSSL::Digest | ハッシュ関数のためのインターフェースを提供するクラスです。 |
OpenSSL::Digest::DSS | ハッシュ関数 DSS を表すクラス |
OpenSSL::Digest::DSS1 | ハッシュ関数 DSS1 を表すクラス |
OpenSSL::Digest::Digest | このクラスは互換性のために存在します。 |
OpenSSL::Digest::MD2 | ハッシュ関数 MD2 を表すクラス |
OpenSSL::Digest::MD4 | ハッシュ関数 MD4 を表すクラス |
OpenSSL::Digest::MD5 | ハッシュ関数 MD5 を表すクラス |
OpenSSL::Digest::MDC2 | ハッシュ関数 MDC2 を表すクラス |
OpenSSL::Digest::RIPEMD160 | ハッシュ関数 RIPEMD160 を表すクラス |
OpenSSL::Digest::SHA | ハッシュ関数 SHA を表すクラス |
OpenSSL::Digest::SHA1 | ハッシュ関数 SHA1 を表すクラス |
OpenSSL::Digest::SHA224 | ハッシュ関数 SHA224 を表すクラス |
OpenSSL::Digest::SHA256 | ハッシュ関数 SHA256 を表すクラス |
OpenSSL::Digest::SHA384 | ハッシュ関数 SHA384 を表すクラス |
OpenSSL::Digest::SHA512 | ハッシュ関数 SHA512 を表すクラス |
OpenSSL | OpenSSL のすべてのクラス、モジュール、メソッド、定数を 保持しているモジュールです。 |
OpenSSL::ASN1 | ASN.1(Abstract Syntax Notation One) のデータを取り扱うためのモジュールです。 |
OpenSSL::Buffering | OpenSSL::SSL::SSLSocket にバッファリング付きIO機能を提供する モジュールです。 |
OpenSSL::OCSP | OCSP(Online Certificate Status Protocol)を取り扱うための モジュールです。OCSP は [RFC2560] で定義されています。 |
OpenSSL::PKCS12 | PKCS#12 (秘密鍵、証明書、関連するCA証明書を1つのファイルに保存する形式) を表すクラスです。 |
OpenSSL::PKCS5 | OpenSSL PKCS#5 関連の機能を集めたモジュール |
OpenSSL::PKey | 公開鍵暗号関連を集めたモジュールです。 |
OpenSSL::Random | OpenSSL が利用する疑似乱数生成器関連のモジュールです。 |
OpenSSL::SSL | |
OpenSSL::SSL::SocketForwarder | to_io で返されるソケットオブジェクトにメソッドを フォワードするモジュールです。 |
OpenSSL::X509 | OpenSSL の X509 証明書、CRL(証明書失効リスト)、 CSR(証明書署名要求)、証明書ストアなどに関するモジュールです。 |