클래스: Mongo::Socket::SSL 비공개

상속:
Mongo::Socket 모두 표시
다음을 포함합니다.
OpenSSL
다음에 정의됨:
빌드/ Ruby-driver-v2.19/lib/mongo/socket/ssl.rb

개요

이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

TLS 소켓용 래퍼입니다.

이후:

  • 2.0.0

상수 요약

Mongo::Socket에서 상속된 상수

SSL_ERROR, TIMEOUT_ERROR, TIMEOUT_PACK, WRITE_CHUNK_SIZE

인스턴스 속성 요약 접기

Mongo::Socket에서 상속된 속성

# family, #options, #socket, #timeout

인스턴스 메서드 요약 접기

Mongo::Socket에서 상속된 메서드

#alive?, #close, #connectable?, #connection_address, #connection_generation, #eof?, #gets, # 모니터?, #read, #summary, # 쓰기 (write)

생성자 세부 정보

#initialize(호스팅하다, port, host_name, timeout, family, options = {}) ⇒ SSL

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

새 TLS 소켓을 초기화합니다.

예시:

TLS 소켓을 만듭니다.

SSL.new('::1', 27017, 30)

매개변수:

  • 호스트 (string)

    호스트 이름 또는 IP 주소 입니다.

  • 포트 (정수)

    포트 번호입니다.

  • 타임아웃 (Float)

    소켓 시간 초과 값입니다.

  • family (정수)

    소켓 제품군입니다.

  • 옵션 (해시) (기본값: {})

    옵션.

옵션 해시(options):

  • :connect_timeout (Float)

    연결 시간이 초과되었습니다.

  • :connection_address (주소)

    이 소켓을 생성한 연결의 주소입니다.

  • :connection_generation (정수)

    이 소켓을 생성한 연결의 생성(모니터링이 아닌 연결의 경우)입니다.

  • :monitor (true | false)

    이 소켓이 모니터링 연결에 의해 생성되었는지 여부입니다.

  • :ssl_ca_cert (string)

    연결의 다른 쪽 끝에서 전달된 인증서의 유효성을 검사하는 데 사용되는 연결된 인증 기관 인증서가 포함된 파일입니다. 이 옵션에서 참조하는 파일에 중간 인증서를 지정해서는 안 됩니다. :ssl_verify를 사용할 때는 :ssl_ca_cert, :ssl_ca_cert_string 또는 :ssl_ca_cert_object(우선 순위 순) 중 하나가 필요합니다.

  • :ssl_ca_cert_object (Array<OpenSSL::X509::Certificate>)

    연결의 다른 쪽 끝에서 전달된 인증서의 유효성을 검사하는 데 사용되는 인증 기관 인증서를 나타내는 OpenSSL::X509::Certificate 객체의 배열입니다. 이 옵션에서 참조하는 파일에 중간 인증서를 지정해서는 안 됩니다. :ssl_verify를 사용할 때는 :ssl_ca_cert, :ssl_ca_cert_string 또는 :ssl_ca_cert_object(우선 순위 순) 중 하나가 필요합니다.

  • :ssl_ca_cert_string (string)

    연결의 다른 쪽 끝에서 전달된 인증서의 유효성을 검사하는 데 사용되는 인증 기관 인증서가 포함된 string 입니다. 이 옵션을 사용하면 드라이버에 하나의 CA 인증서만 전달할 수 있습니다. 이 옵션에서 참조하는 파일에 중간 인증서를 지정해서는 안 됩니다. :ssl_verify를 사용할 때는 :ssl_ca_cert, :ssl_ca_cert_string 또는 :ssl_ca_cert_object(우선 순위 순) 중 하나가 필요합니다.

  • :ssl_cert (string)

    MongoDB에 대한 연결을 식별하는 데 사용되는 인증서 파일입니다. 클라이언트 인증서를 먼저 지정한 다음 중간 인증서를 CA 인증서까지 지정하여 인증서 체인을 전달할 수 있습니다. 파일에는 인증서의 개인 키가 포함될 수도 있으며, 이는 무시됩니다. 이 옵션이 있는 경우 이 옵션은 :ssl_cert_string 및 :ssl_cert_object의 값보다 우선합니다.

  • :ssl_cert_object (OpenSSL::X509::Certificate)

    MongoDB에 대한 연결을 식별하는 데 사용되는 OpenSSL::X509::Certificate입니다. 이 옵션을 통해 전달할 수 있는 인증서는 하나뿐입니다.

  • :ssl_cert_string (string)

    string 에 대한 연결을 식별하는 데 사용되는 PEM 인코딩 인증서가 MongoDB 포함된 입니다. 클라이언트 인증서를 먼저 지정한 다음 중간 인증서를 CA 인증서까지 지정하여 인증서 체인을 전달할 수 있습니다. string 에는 인증서의 비공개 키가 포함될 수도 있으며, 이는 무시됩니다. 이 옵션(있는 경우)은 ssl_cert_object의 값보다 우선합니다.

  • :ssl_key (string)

    MongoDB에 대한 연결을 식별하는 데 사용되는 비공개 키 파일입니다. 키가 인증서와 동일한 파일에 저장되어 있더라도 둘 다 명시적으로 지정해야 합니다. 이 옵션이 있는 경우 이 옵션은 :ssl_key_string 및 :ssl_key_object의 값보다 우선합니다.

  • :ssl_key_object (OpenSSL::PKey)

    MongoDB에 대한 연결을 식별하는 데 사용되는 비공개 키입니다.

  • :ssl_key_pass_phrase (string)

    비공개 키의 암호입니다.

  • :ssl_key_string (string)

    string 에 대한 연결을 식별하는 데 사용되는 PEM 인코딩된 비공개 키가 MongoDB 포함된 입니다. 이 매개변수(있는 경우)는 ssl_key_object 옵션의 값보다 우선합니다.

  • :ssl_verify (true, false)

    피어 인증서 유효성 검사 및 호스트 이름 확인을 수행할지 여부입니다. :ssl_verify_certificate가 설정된 경우 인증서 유효성 검사 여부에 대한 결정이 재정의되고, :ssl_verify_hostname이 설정된 경우 호스트 이름의 유효성 검사 여부에 대한 결정이 재정의됩니다.

  • :ssl_verify_certificate (true, false)

    피어 인증서 유효성 검사를 수행할지 여부입니다. 이 설정은 인증서 유효성 검사 수행 여부와 관련하여 :ssl_verify를 재정의합니다.

  • :ssl_verify_hostname (true, false)

    Whether to perform peer hostname validation. 이 설정은 호스트 이름 유효성 검사 수행 여부와 관련하여 :ssl_verify를 재정의합니다.

이후:

  • 2.0.0



103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', 줄 103

def 초기화(호스트, 포트, host_name, 타임아웃, family, 옵션 = {})
  super(타임아웃, 옵션)
  @host, @port, @host_name = 호스트, 포트, host_name
  @context = create_context(옵션)
  @패밀리 = family
  @tcp_socket = ::소켓.신규(family, SOCK_STREAM, 0)
  시작
    @tcp_socket.Setsockopt(IPPROTO_TCP, TCP_NODELAY, 1)
    set_socket_options(@tcp_socket)
    run_tls_context_hooks

    연결!
  구출
    @tcp_socket.닫기
    올리다
  end
end

인스턴스 속성 세부 정보

#contextSSLContext (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환 컨텍스트 TLS 컨텍스트입니다.

반환합니다:

  • (SSLContext)

    context TLS 컨텍스트입니다.

이후:

  • 2.0.0



122
123
124
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', 줄 122

def 컨텍스트
  @context
end

#호스트string (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환 호스팅하다 연결할 호스팅하다 입니다.

반환합니다:

  • (string)

    호스팅하다 연결할 호스팅하다 입니다.

이후:

  • 2.0.0



125
126
127
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', 줄 125

def 호스트
  @host
end

#host_namestring (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

반환값 host_name 원래 호스트 이름입니다.

반환합니다:

  • (string)

    host_name 원래 호스트 이름입니다.

이후:

  • 2.0.0



128
129
130
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', 줄 128

def host_name
  @host_name
end

#포트정수 (읽기 전용)

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

포트를 반환합니다.

반환합니다:

  • (정수)

    port 연결할 포트입니다.

이후:

  • 2.0.0



131
132
133
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', 줄 131

def 포트
  @port
end

인스턴스 메서드 세부 정보

#readbyte객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

소켓에서 단일 바이트를 읽습니다.

예시:

싱글 바이트를 읽습니다.

socket.readbyte

반환합니다:

  • (객체)

    읽기 바이트입니다.

이후:

  • 2.0.0



176
177
178
179
180
181
# 파일 'build/ruby-driver-v2.19/lib/mongo/socket/ssl.rb', 줄 176

def readbyte
  map_Exceptions do
    byte = 소켓.읽기(1).바이트.to_a[0]
    byte.nil? ? 올리다(EOFError) : byte
  end
end