使用统一驱动程序连接会话时错误的解释
如 https://neo4j.ac.cn/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
的行即可。
此页面有帮助吗?