クラス
モジュール
-
OpenSSL
:: ASN1 (1) -
OpenSSL
:: Random (4) -
OpenSSL
:: X509 (6)
キーワード
- Config (1)
-
DEFAULT
_ CERT _ FILE (1) -
DEFAULT
_ CERT _ FILE _ ENV (1) -
DEFAULT
_ CERT _ STORE (1) -
DEFAULT
_ CONFIG _ FILE (1) - Digest (1)
- ExtensionFactory (1)
- RSA (1)
- Random (1)
- Request (1)
- SSLServer (1)
-
V
_ ERR _ DEPTH _ ZERO _ SELF _ SIGNED _ CERT (1) -
V
_ ERR _ SELF _ SIGNED _ CERT _ IN _ CHAIN (1) -
V
_ ERR _ UNABLE _ TO _ GET _ ISSUER _ CERT (1) -
V
_ ERR _ UNABLE _ TO _ GET _ ISSUER _ CERT _ LOCALLY (1) -
add
_ file (1) -
ca
_ file (1) -
ca
_ file= (1) -
cert
_ store= (1) - config= (1)
- decode (1)
- each (1)
- egd (1)
-
egd
_ bytes (1) - load (1)
-
load
_ random _ file (1) - new (1)
-
set
_ params (1) -
write
_ random _ file (1) -
write
_ smime (1)
検索結果
先頭5件
-
OpenSSL
:: X509 :: Store # add _ file(file) -> self (27631.0) -
ファイルに含まれる CA 証明書を信頼する証明書として証明書ストアに加えます。
...ファイルに含まれる CA 証明書を信頼する証明書として証明書ストアに加えます。
@param file ファイル名文字列
@raise OpenSSL::X509::StoreError 追加に失敗した場合に発生します... -
OpenSSL
:: Random . # load _ random _ file(filename) -> true (27628.0) -
ファイルを読み込み、その内容をエントロピー源として 乱数生成器に渡します。
...バイト数と同じであると見なします。
OpenSSL::Random.seed(File.read(filename)) と同じです。
@param filename 読み込むファイル名
@raise OpenSSL::Random::RandomError ファイルの読み込みに失敗した場合に発生します
@raise OpenSSL::Random::RandomError... -
OpenSSL
:: Random . # write _ random _ file(filename) -> true (27610.0) -
乱数生成器で生成された 1024 バイトのランダムなバイト列を ファイルに書き込みます。
...存しなければなりません。
部外者がこのファイルを読めることはセキュリティ上の問題を引き起します。
@param filename 書き込むファイルの名前
@raise OpenSSL::Random::RandomError ファイルの書き出しに失敗した場合に発生します... -
OpenSSL
:: X509 :: DEFAULT _ CERT _ FILE _ ENV -> String (27346.0) -
CA 証明書ファイル名を指定する環境変数名です。
...指定する環境変数名です。
通常、"SSL_CERT_FILE" という文字列です。
この環境変数を設定しておくことによって
OpenSSL::X509::Store#set_default_paths で読み込まれる
証明書ファイル名を変更できます。
@see OpenSSL::X509::DEFAULT_CERT_FILE... -
OpenSSL
:: SSL :: SSLContext # ca _ file -> String | nil (27328.0) -
接続相手の検証のために使う、信頼している CA 証明書ファイルのパスを返します。
...接続相手の検証のために使う、信頼している CA 証明書ファイルのパスを返します。
設定されていない場合は nil を返します。
@see OpenSSL::SSL::SSLContext#ca_file=... -
OpenSSL
:: SSL :: SSLContext # ca _ file=(ca) (27328.0) -
接続相手の検証のために使う、信頼している CA 証明書ファイルのパスを 設定します。
...g) ...
-----END CERTIFICATE-----
(ここに証明書の説明)
-----BEGIN CERTIFICATE-----
... (CA certificate in base64 encoding) ...
-----END CERTIFICATE-----
デフォルトは nil です。
@param ca CA証明書ファイルのパス文字列
@see OpenSSL::SSL::SSLContext#ca_file=... -
OpenSSL
:: X509 :: DEFAULT _ CERT _ FILE -> String (27328.0) -
デフォルトの CA 証明書ファイル名です。
...デフォルトの CA 証明書ファイル名です。
OpenSSL::X509::Store#set_default_paths で読み込まれます。
OpenSSL::X509::DEFAULT_CERT_FILE_ENV で得られる環境変数よって
上書き可能です。... -
OpenSSL
:: Config :: DEFAULT _ CONFIG _ FILE -> String (27310.0) -
デフォルトの設定ファイル名を返します。
デフォルトの設定ファイル名を返します。 -
OpenSSL
:: Config . load(filename = nil) -> OpenSSL :: Config (9607.0) -
OpenSSL::Config オブジェクトを生成します。
...OpenSSL::Config オブジェクトを生成します。
filename で指定したファイルから設定データを読みこみます。
filename を省略した場合は空のオブジェクトが生成されます。
@param filename ファイル名文字列
@raise OpenSSL::ConfigError 設定... -
OpenSSL
:: Config . new(filename = nil) -> OpenSSL :: Config (9607.0) -
OpenSSL::Config オブジェクトを生成します。
...OpenSSL::Config オブジェクトを生成します。
filename で指定したファイルから設定データを読みこみます。
filename を省略した場合は空のオブジェクトが生成されます。
@param filename ファイル名文字列
@raise OpenSSL::ConfigError 設定... -
OpenSSL
:: SSL :: SSLContext :: DEFAULT _ CERT _ STORE -> OpenSSL :: X509 :: Store (9355.0) -
OpenSSL::SSL::SSLContext#set_params で信頼する CA 証明書 (ca_file, ca_path, cert_store) を一切指定しなかった場合に デフォルトで使われる証明書ストアです。
...OpenSSL::SSL::SSLContext#set_params で信頼する CA 証明書
(ca_file, ca_path, cert_store) を一切指定しなかった場合に
デフォルトで使われる証明書ストアです。
OpenSSL::X509::Store#set_default_paths でシステムが提供する
証明書を利用するように... -
OpenSSL
:: ASN1 . # decode(der) -> OpenSSL :: ASN1 :: ASN1Data (9325.0) -
DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
...DER 表現の文字列を解析し、そこにエンコードされている ASN.1 の値を
OpenSSL::ASN1::ASN1Data のサブクラスのインスタンスとして返します。
複数の ASN.1 の値が含まれている場合、先頭の値だけを返します。
ASN.1 オブジェクトが......-e '
require "openssl"
require "pp"
pem = File.read(ARGV[0])
cert = OpenSSL::X509::Certificate.new(pem)
pp OpenSSL::ASN1.decode(cert.to_der)
' mycert.pem
#<OpenSSL::ASN1::Sequence:0x814e9fc
@tag=16,
@tag_class=:UNIVERSAL,
@tagging=nil,
@value=
[#<OpenSSL::ASN1::Sequence......@tag=16,
@tag_class=:UNIVERSAL,
@tagging=nil,
@value=
[#<OpenSSL::ASN1::ASN1Data:0x814f690
@tag=0,
@tag_class=:CONTEXT_SPECIFIC,
@value=
[#<OpenSSL::ASN1::Integer:0x814f6a4
@tag=2,
@tag_class=:UNIVERSAL,... -
OpenSSL
:: Random . # egd(filename) -> true (9307.0) -
EGD(Entropy Gathering Daemon) からエントロピーを得、 乱数生成器に追加します。
...ます。
filename で指定した Unix domain socket から EGD に問い合わせ、
255 バイト分のエントロピーを取得します。
OpenSSL::Random.egd_bytes(filename, 255) と同じです。
@param filename EGD のソケットのファイル名
@raise OpenSSL::Random::RandomError... -
OpenSSL
:: Random . # egd _ bytes(filename , length) -> true (9307.0) -
EGD(Entropy Gathering Daemon) から length バイト分のエントロピーを得ます。
...domain socket から EGD に問い合わせ、
指定した大きさのエントロピーを乱数生成器に追加します。
@param filename EGD のソケットのファイル名
@param length 読み込むバイト数
@raise OpenSSL::Random::RandomError
@raise OpenSSL::Random::RandomError... -
OpenSSL
:: PKey :: RSA (9097.0) -
RSA 暗号鍵のクラスです。
...通常このクラスで利用するのは、
OpenSSL::PKey::RSA.generate, OpenSSL::PKey::RSA.new,
OpenSSL::PKey::RSA#public?, OpenSSL::PKey::RSA#private?,
OpenSSL::PKey::RSA#public_key, OpenSSL::PKey::RSA#to_text,
OpenSSL::PKey::RSA#to_pem, OpenSSL::PKey::RSA#to_der
のいずれかでしょう。......ついてよく理解し、必要な場合のみにすべきです。
例:
require 'openssl'
# initialize random seed
OpenSSL::Random.seed(File.read("/dev/random", 16))
# 鍵対を生成
rsa = OpenSSL::PKey::RSA.generate(2048)
# 秘密鍵をAES256で暗号化して private_key.pem に......PEM 形式で保存
passphrase = "!secret passphrase!"
File.open("private_key.pem", "w") do |f|
f.write(rsa.export(OpenSSL::Cipher.new("aes256"), passphrase))
end
# 公開鍵をpublic_key.pemに保存
public_key = rsa.public_key
File.open("public_key.pem", "w") do |f|
f.write(pu... -
OpenSSL
:: Digest (9043.0) -
ハッシュ関数のためのインターフェースを提供するクラスです。
...を計算する (OpenSSL::Digest.digest,
Digest::Instance#hexdigest) 方法です。短い文字列の
ダイジェストを取るときにはこちらを使えばよいでしょう。
もう一つはダイジェストオブジェクトを作成して、文字列を順次
OpenSSL::Digest#update で......ストを計算
します。大きなファイルのハッシュ値を計算する場合などに
利用します。
例:
require 'openssl'
digest = OpenSSL::Digest.new("sha256")
File.open(filename){|f|
while data = f.read(1024)
digest.update(data)
end
}
puts digest.hexdig... -
OpenSSL
:: PKCS7 . write _ smime(p7sig , data=nil , flags = 0) -> String (9043.0) -
PKCS7 オブジェクトから S/MIME 形式の文字列を返します。
...l を渡すと OpenSSL::PKCS7#data で得られる
文字列を用います。通常は nil を渡してください。
flags には以下の定数の or を渡します。
* OpenSSL::PKCS7::DETACHED
クリア署名をします。これは OpenSSL::PKCS7.sign で
OpenSSL::PKCS7::DETAC......。
* OpenSSL::PKCS7::TEXT
MIME ヘッダに text/plain を付加します。
これは OpenSSL::PKCS7.sign で
OpenSSL::PKCS7::DETACHED を渡した場合にのみ意味を持ちます。
例:
require 'openssl'
data = "foobar"
p7 = OpenSSL::PKCS7.sign( OpenSSL::X509::Ce......ert.pem')),
OpenSSL::PKey::RSA.new(File.read('privkey.pem')),
data)
smime = PKCS7.write_smime(p7)
@param p7sig PKCS#7 オブジェクト
@param data 署名されたデータ文字列
@param flags フラグ(整数値)
@raise OpenSSL::PKCS::PK... -
OpenSSL
:: SSL :: SSLContext # set _ params(params) -> Hash (9043.0) -
パラメータをハッシュで設定します。
...(OpenSSL::SSL::SSLContext#cert=)
* :key (OpenSSL::SSL::SSLContext#key=)
* :client_ca (OpenSSL::SSL::SSLContext#client_ca=)
* :ca_file (OpenSSL::SSL::SSLContext#ca_file=)
* :ca_path (OpenSSL::SSL::SSLContext#ca_path=)
* :timeout (OpenSSL::SSL::SSLContext#timeout=)
* :verify_mode (OpenSSL:......rify_mode=)
* :verify_depth (OpenSSL::SSL::SSLContext#verify_depth=)
* :verify_callback (OpenSSL::SSL::SSLContext#verify_callback=)
* :options (OpenSSL::SSL::SSLContext#options=)
* :cert_store (OpenSSL::SSL::SSLContext#cert_store=)
* :extra_chain_cert (OpenSSL::SSL::SSLContext#extra_chain_......p_dh_callback (OpenSSL::SSL::SSLContext#tmp_dh_callback=)
* :session_id_context (OpenSSL::SSL::SSLContext#session_id_context=)
* :session_get_cb (OpenSSL::SSL::SSLContext#session_get_cb=)
* :session_new_cb (OpenSSL::SSL::SSLContext#session_new_cb=)
* :session_remove_cb (OpenSSL::SSL::SSLCont... -
OpenSSL
:: SSL :: SSLServer (9043.0) -
SSL サーバーのためのクラス。
...SSL サーバーのためのクラス。
TCPServer をラップするクラスで、TCPServer で接続した
ソケットを OpenSSL::SSL::SSLSocket でラップする機能を持ちます。
おおよそ TCPServer と同様のメソッドを持ちます。
基本的には SSL サーバを簡単......。
以下はクライアントからの入力を標準出力に出力するだけのサーバです。
require 'socket'
require 'openssl'
include OpenSSL
ctx = SSL::SSLContext.new()
ctx.cert = X509::Certificate.new(File.read('cert.pem'))
ctx.key = PKey::RSA.new(File.read('privke... -
OpenSSL
:: X509 :: ExtensionFactory (9043.0) -
OpenSSL::X509::Extension を簡便に生成するための クラスです。
...OpenSSL::X509::Extension を簡便に生成するための
クラスです。
例
require 'openssl'
# ca_cert: CA の証明書オブジェクト
# req: CSR オブジェクト
# newcert: 新たに生成する証明書のオブジェクト
ca_cert = OpenSSL::X509::Certificate.new(File.read......('ca_cert.pem'))
req = OpenSSL::X509::Request.new(File.read('req.pem'))
newcert = OpenSSL::X509::Certificate.new
# 新しい ExtensionFactory オブジェクトを生成し、 CA の証明書オブジェクト
# を設定
factory = OpenSSL::X509::ExtensionFactory.new(ca_cert)
# CSR オ... -
OpenSSL
:: Config (9025.0) -
OpenSSL の設定ファイルを表すクラスです。
...OpenSSL の設定ファイルを表すクラスです。
OpenSSL の設定ファイルは、キーと文字列を対応付けた単純な構造をしています。
また、キーはセクションによってグループ分けされています。
どのセクションにも属さないグロー......バルなキーを作ることもできます。
デフォルトの設定ファイルを読み込む例
require 'openssl'
conf = OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
p conf.sections # => ["req_distinguished_name", "req_attributes", "proxy_cert_ext", "policy_anything", "C... -
OpenSSL
:: Config # each {|section , key , value| . . . } -> self (9025.0) -
オブジェクトに含まれる全ての設定情報を順にブロックに渡し 呼び出します。
...を表す文字列、キーを表す文字列、キーに
割り当てられた値の文字列、の3つです。
require 'openssl'
conf = OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
conf.each{|section, key, value| p [section, key, value]}
# => ["req_distinguished_name", "cou... -
OpenSSL
:: Random (9025.0) -
OpenSSL が利用する擬似乱数生成器関連のモジュールです。
...OpenSSL が利用する擬似乱数生成器関連のモジュールです。
* 4086
=== 暗号と乱数
OpenSSL では、鍵を生成するためなどに乱数を用いています。例えば RSA では
巨大(512bitや1024bitなど)な素数の組を乱数で生成し、そこから公開鍵......ます。
* OpenSSL::PKey::RSA.generate
* OpenSSL::PKey::DSA.generate
* OpenSSL::PKey::DH.generate
* OpenSSL::Cipher#random_key
そのような乱数は適切な実装を持つ擬似乱数生成器に適切なシードを渡す
ことによって実現できます。
OpenSSL にはそのよ......。
そして、この擬似乱数生成器は OpenSSL の様々なモジュールから利用されています。
上に挙げた鍵生成メソッドの他に、
* OpenSSL::BN.rand
* OpenSSL::BN.rand_range
* OpenSSL::BN.generate_prime
* OpenSSL::Cipher#random_iv
などでも利用され... -
OpenSSL
:: SSL :: SSLContext # cert _ store=(store) (9025.0) -
接続相手の証明書の検証のために使う、信頼している CA 証明書を 含む証明書ストアを設定します。
...明書の検証のために使う、信頼している CA 証明書を
含む証明書ストアを設定します。
通常は OpenSSL::SSL::SSLContext#ca_path= や
OpenSSL::SSL::SSLContext#ca_file= で証明書を設定しますが、
CRL を使いたいなど、より詳細な設定をしたい......場合にはこれを使います。
デフォルトは nil (証明書ストアを指定しない)です。
@param store 設定する証明書ストア(OpenSSL::X509::Store のインスタンス)
@see OpenSSL::SSL::SSLContext#cert_store... -
OpenSSL
:: X509 :: ExtensionFactory # config=(config) (9025.0) -
自身にコンフィグファイルオブジェクトを設定します。
...自身にコンフィグファイルオブジェクトを設定します。
例
require 'openssl'
factory.config = OpenSSL::Config.load(OpenSSL::Config::DEFAULT_CONFIG_FILE)
@param config 設定ファイル(OpenSSL::Config オブジェクト)... -
OpenSSL
:: X509 :: Request (9025.0) -
X.509 の証明書署名要求(Certificate Signing Request, CSR)を表わす クラスです。
...CSR を生成する例。
require 'openssl'
# ファイルから秘密鍵を読み込む
rsa = OpenSSL::PKey::RSA.new(File.read("privkey.pem"))
# 新しい CSR オブジェクトを生成
csr = OpenSSL::X509::Request.new
# DN を生成
name = OpenSSL::X509::Name.new
name.add_entry('C......sa.public_key
# attribute を設定
factory = OpenSSL::X509::ExtensionFactory.new
exts = [ factory.create_ext("subjectAltName", "DNS:foo.example.com") ]
asn1exts = OpenSSL::ASN1::Set([OpenSSL::ASN1::Sequence(exts)])
csr.add_attribute(OpenSSL::X509::Attribute.new("extReq", asn1exts))
#... -
OpenSSL
:: X509 :: V _ ERR _ DEPTH _ ZERO _ SELF _ SIGNED _ CERT -> Integer (9025.0) -
検証している証明書がルート CA (自己署名証明書)であり、 それが信頼されている証明書でないことを意味します。
...いことを意味します。
OpenSSL::X509::Store#error や
OpenSSL::X509::StoreContext#error のエラーコードとして
使われます。
@see OpenSSL::X509::Store#add_file,
OpenSSL::X509::Store#add_path,
OpenSSL::X509::Store#add_cert,
OpenSSL::X509::Store#set_default_paths... -
OpenSSL
:: X509 :: V _ ERR _ SELF _ SIGNED _ CERT _ IN _ CHAIN -> Integer (9025.0) -
証明書チェインのルート CA (自己署名証明書)が 信頼されている証明書でないことを意味します。
...いことを意味します。
OpenSSL::X509::Store#error や
OpenSSL::X509::StoreContext#error のエラーコードとして
使われます。
@see OpenSSL::X509::Store#add_file,
OpenSSL::X509::Store#add_path,
OpenSSL::X509::Store#add_cert,
OpenSSL::X509::Store#set_default_paths... -
OpenSSL
:: X509 :: V _ ERR _ UNABLE _ TO _ GET _ ISSUER _ CERT -> Integer (9025.0) -
issuer(発行者)の証明書が 信頼している証明書群の中から見付からない ような証明書を、信頼している証明書群に含んでいることを意味します。
...ることを意味します。
OpenSSL::X509::Store#error や
OpenSSL::X509::StoreContext#error のエラーコードとして
使われます。
@see OpenSSL::X509::Store#add_file,
OpenSSL::X509::Store#add_path,
OpenSSL::X509::Store#add_cert,
OpenSSL::X509::Store#set_default_paths... -
OpenSSL
:: X509 :: V _ ERR _ UNABLE _ TO _ GET _ ISSUER _ CERT _ LOCALLY -> Integer (9025.0) -
証明書チェイン末尾の証明書の issuer(発行者)の証明書が 信頼している証明書群の中から見付からないことを意味します。
...いことを意味します。
OpenSSL::X509::Store#error や
OpenSSL::X509::StoreContext#error のエラーコードとして
使われます。
@see OpenSSL::X509::Store#add_file,
OpenSSL::X509::Store#add_path,
OpenSSL::X509::Store#add_cert,
OpenSSL::X509::Store#set_default_paths...