首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j服务器证书不受信任

Neo4j服务器证书不受信任
EN

Stack Overflow用户
提问于 2020-07-24 21:43:41
回答 1查看 595关注 0票数 0

我刚刚在Google上的VM上设置了我的Neo4j服务器,我使用的是企业版本4.1.1,我已经完成了David关于如何使用LetsEncrypt获得证书的伟大文章(这里)。

这一切都很完美,我现在有了一个完全安全的Neo4j服务器,我可以使用我的主机名通过浏览器(MYDOMAIN.COM:7473/browser)访问它。但是,我现在在使用javascript驱动程序连接到服务器时遇到了问题。

我一直收到以下错误:

未能连接到服务器。请确保数据库正在侦听正确的主机和端口,并且在Neo4j服务器和驱动程序上都具有兼容的加密设置。请注意,默认加密设置已在Neo4j 4.0中更改。原因:服务器证书不受信任。如果您信任所连接的数据库,则使用TRUST_CUSTOM_CA_SIGNED_CERTIFICATES并将签名证书或服务器证书添加到使用neo4j.driver(.,{neo4j.driver)的驱动程序信任的证书列表中这是一项防范中间人攻击的安全措施。如果您只是尝试Neo4j而不关心加密,只需在驱动程序选项中使用encrypted="ENCRYPTION_OFF“禁用它。套接字的响应是: ERR_TLS_CERT_ALTNAME_INVALID

我已经阅读了驱动程序文档(这里),并添加了trust: "TRUST_CUSTOM_CA_SIGNED_CERTIFICATES"trustedCertificates:[]设置。我从服务器(cert.pem、chain.pem、fullchain.pem和privacy.pem)下载了所有证书,并在trustedCertificates设置中链接到它们。

不幸的是,我仍然会犯同样的错误。作为参考,以下是当前配置我的驱动程序的方式:

代码语言:javascript
复制
// This module can be used to serve the GraphQL endpoint
// as a lambda function

const { ApolloServer } = require('apollo-server-lambda')
const { makeAugmentedSchema } = require('neo4j-graphql-js')
const neo4j = require('neo4j-driver')

// This module is copied during the build step
// Be sure to run `npm run build`
const { typeDefs } = require('./graphql-schema')

const driver = neo4j.driver(
  process.env.NEO4J_URI,
  neo4j.auth.basic(
    process.env.NEO4J_USER,
    process.env.NEO4J_PASSWORD 
  ),
  {
    encrypted: process.env.NEO4J_ENCRYPTED ? 'ENCRYPTION_ON' : 'ENCRYPTION_OFF',
    trust: "TRUST_CUSTOM_CA_SIGNED_CERTIFICATES",
    trustedCertificates: ['../../certificates/cert.pem', '../../certificates/chain.pem', '../../certificates/fullchain.pem', '../../certificates/privkey.pem'],
    logging: {
      level: 'debug',
      logger: (level, message) => console.log(level + ' ' + message)
    },
  }
)

const server = new ApolloServer({
  schema: makeAugmentedSchema({ typeDefs }),
  context: { driver, neo4jDatabase: process.env.NEO4J_DATABASE },
  introspection: true,
  playground: true,
})

exports.handler = server.createHandler()

我使用的是驱动程序的最新版本,v2.14.4,并且启用了完整的日志记录,但是我没有得到比上面更多的信息。我只是不知道我做错了什么-有人有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-25 20:52:17

我找到了解决这个问题的方法--我查看了文档(这里),发现我需要将NEO4J_URIbolt://SO.ME.IP.ADDRESS:7687更新到neo4j://MYDOMAIN.COM:7687。现在我已经这样做了,一切都如期而至。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63081862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档