web-dev-qa-db-ja.com

SecurityError:「プロトコル(_ssl.c:841)に違反してEOFが発生しました」への安全な接続の確立に失敗しました

Neo4jに接続しようとしていますが、このエラーが発生し続けます。私は試した

from neo4j.v1 import GraphDatabase
driver = GraphDatabase.driver(uri="bolt://localhost:7687", auth=("neo4j", "12345"))

接続しようとすると、このエラーが発生します

SecurityError:「プロトコル(_ssl.c:841)に違反してEOFが発生しました」への安全な接続の確立に失敗しました

入力したらブラウザに接続できます http:// localhost:7474/browser /

ここに完全なエラーログがあります:

-------------------------------------------------- ------------------------- SSLEOFErrorトレースバック(最新の呼び出しは最後)〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct .py in _secure(s、Host、ssl_context、** config)853 try:-> 854 s = ssl_context.wrap_socket(s、server_hostname = Host if HAS_SNI and Host else None)原因:SSLErrorを原因として:

wrap_socket(self、sock、server_side、do_handshake_on_connect、suppress_ragged_eofs、server_hostname、session)のc:\ program files\python36\lib\ssl.py 406 server_hostname = server_hostname、-> 407 _context = self、_session = session)408

c:\ program files\python36\lib\ssl.py ininit(self、sock、keyfile、certfile、server_side、cert_reqs、ssl_version、ca_certs、do_handshake_on_connect、family、type、 proto、fileno、suppress_ragged_eofs、npn_protocols、ciphers、server_hostname、_context、_session)813 raise ValueError( "do_handshake_on_connect should not be specified for non-blocking sockets")-> 814 self.do_handshake()815

c:\ program files\python36\lib\ssl.py in do_handshake(self、block)
1067 self.settimeout(None)-> 1068 self._sslobj.do_handshake()1069最後に:

c:\ program files\python36\lib\ssl.py in do_handshake(self)688 "" "Start the SSL/TLS handshake。" ""-> 689 self._sslobj.do_handshake()690 if self.context.check_hostname :

SSLEOFError:EOFプロトコル違反で発生しました(_ssl.c:841)

上記の例外は、次の例外の直接の原因でした。

1のSecurityErrorトレースバック(最新の呼び出しは最後)----> 2 driver = GraphDatabase.driver(uri = "bolt:// localhost:7687"、auth =( "neo4j"、 "12345"))

〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py in driver(cls、uri、** config)118:class:.Driverサブクラスのインスタンスを直接。 119 "" "-> 120 return Driver(uri、** config)121 122

〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py innew(cls、uri、** config)159 for subclass for Driver。subclasses():160 if parsed_scheme in subclass.uri_schemes:-> 161 return subclass(uri、** config)162 raise ValueError( "URI scheme%r not supported"%parsed.scheme) 163

〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py innew(cls、uri、** config)233 234 pool = ConnectionPool(connector、instance。アドレス、** config)-> 235 pool.release(pool.acquire())236 instance._pool = pool 237 instance._max_retry_time = config.get( "max_retry_time"、default_config ["max_retry_time"])

〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in acquire(self、access_mode)713 714 defquire(self、access_mode = None):-> 715 return self.acquire_direct(self.address )716 717

〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py inquire_direct(self、address)606 if can_create_new_connection:607 try:-> 608 connection = self.connector(address、error_handler = self.connection_error_handler )ServiceUnavailableを除く609:610 self.remove(address)

〜\ AppData\Roaming\Python\Python36\site-packages\neo4j__init __。py in connector(address、** kwargs)230231 def connector(address、** kwargs):-> 232 return connect(address、** dict (config、** kwargs))233234プール= ConnectionPool(connector、instance.address、** config)

〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in connect(address、** config)970 raise ServiceUnavailable( "Failed to resolve addresses for%s"%address)971 else:-> 972 last_errorを発生させる

〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in connect(address、** config)961 Host = address [0] 962 s = _connect(resolved_address、** config)-> 963 s、der_encoded_server_certificate = _secure(s、Host、security_plan.ssl_context、** config)964 connection = _handshake(s、address、der_encoded_server_certificate、** config)965エラーとしての例外を除く:

〜\ AppData\Roaming\Python\Python36\site-packages\neobolt\direct.py in _secure(s、Host、ssl_context、** config)857 error = SecurityError( "Failed to established secure connection to {!r}"。 format(cause.args [1]))858エラー。cause= cause-> 859エラー860を発生させるelse:861#サーバーが証明書を提供していることを確認する

SecurityError:「プロトコル(_ssl.c:841)に違反してEOFが発生しました」への安全な接続の確立に失敗しました

6
Sam

Object Graph Mapper Neomodel(neo4j v4への接続)でも同じ問題が発生しました。 2行目を追加すると解決しました:

config.DATABASE_URL = 'bolt://neo4j:password123@localhost:7687'
config.ENCRYPTED_CONNECTION = False
2
El tornillo

同じ問題がありましたが、サムからの回答では解決できませんでした。使用する

_from neo4j import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver( encrypted=False, uri, auth=('neo4j', 'asdf'))
_

エラー_SyntaxError: positional argument follows keyword argument_が発生する

次のようにuridirectlyをコマンドに入力すると:driver = GraphDatabase.driver( encrypted=False, uri = "bolt://localhost:7687", auth=('neo4j', 'asdf'))は別のエラー(SecurityError: Failed to establish secure connection to '[SSL: KRB5_S_TKT_NYV] unexpected eof while reading (_ssl.c:1076)')になります

neo4jコミュニティの投稿 をたどると、引数の位置がこれに切り替わります。

_from neo4j import GraphDatabase
uri = "bolt://localhost:7687"
driver = GraphDatabase.driver( uri, auth=('neo4j', 'asdf')encrypted=False)
_

それは魅力のように機能します。

2