知识库

使用统一驱动程序进行会话连接时错误的说明

正如 /docs/developer-manual/current/drivers/#_trust 所述,当建立加密连接时,需要验证远程对等方是否是我们期望连接的对象。默认的连接方式是“首次使用时信任”,这意味着我们将在 ~/.neo4j/known_hosts 中读取并写入证书值。

在从 3.0.0 升级到 3.0.1 后,随后建立到 Neo4j 的连接可能会出错,例如

Java:

General SSLEngine problem

Python:

neo4j.v1.exceptions.ProtocolError: Server certificate does not match known certificate for 'localhost'; check details in file /home/neo4j/.neo4j/known_hosts

正如 Python 错误信息中详细说明的那样,失败是因为读取了 /home/neo4j/.neo4j/known_hosts,其中 /home/neo4j 是用户的默认主目录,而该目录下的 ~/.neo4j/known_hosts 文件包含了已不再有效的证书。该文件内容的示例如下

localhost:MIIBoTCCAQqgAwIBAgIIe+AjK7iGHqMwDQYJKoZIhvcNAQENBQAwEjEQMA4GA1UEAwwHMC4wLjAuMDAgFw0xNTA1MTExODE3MzZaGA85OTk5MTIzMTIzNTk1OVowEjEQMA4GA1UEAwwHMC4wLjAuMDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0Q5XpjnNv2oRs2mB+hx9Ef9txxk3pOWz/FICKb8cZHxMmCDP6IPcuxMh3fW4FRtAeZQCxyRfOrnevnedtW2PdPvqf14lUi1aFDcXHav1Rc6sAgpdLaj3C25G4XjDrBH9tADp6+xbYOpiVmrrwGjRy9SI0k4NgDj4j8YF1yE1boUCAwEAATANBgkqhkiG9w0BAQ0FAAOBgQAkJp+2Z0bD4BJE0XR0HJUOfQwLTxLp4pzSWn77xI11m9AfH0dFdpz2KIIntLNT7fJh8jo25OUH5QqhKIIkzg9wZU80LkTcyEOjbDUW2Sf5yhiu9I2cIQaiJ4Mr8BHaEFbC73iVObGOperSVmOuddcSJAKKHmfeMH4Xmo/uBlc2/Q==

要解决上述失败,只需从 known_hosts 文件中删除引用 localhost 的那一行即可。

© . This site is unofficial and not affiliated with Neo4j, Inc.