Ssl 如何在Neo4j中使用自定义自签名证书(而不是snakeoil.cert)?

Ssl 如何在Neo4j中使用自定义自签名证书(而不是snakeoil.cert)?,ssl,neo4j,r-neo4j,Ssl,Neo4j,R Neo4j,最近,我遇到了在Neo4j中生成不绑定到0.0.0.0的自定义证书的问题。与文档相反,Neo4j希望公钥和私钥都有DER证书 我将针对这个问题发布经验教训 Robsudo vi/etc/neo4j/neo4j-server.properties uncomment org.neo4j.server.webserver.address=0.0.0.0 check: org.neo4j.server.webserver.https.enabled=true check: org.neo4j.serv

最近,我遇到了在Neo4j中生成不绑定到0.0.0.0的自定义证书的问题。与文档相反,Neo4j希望公钥和私钥都有DER证书

我将针对这个问题发布经验教训


Rob

sudo vi/etc/neo4j/neo4j-server.properties

uncomment org.neo4j.server.webserver.address=0.0.0.0
check: org.neo4j.server.webserver.https.enabled=true
check: org.neo4j.server.webserver.https.port=7473
change: org.neo4j.server.webserver.https.cert.location=/var/ssl/neo4j/server.crt
change: org.neo4j.server.webserver.https.key.location=/var/ssl/neo4j/server.key
现在设置对https的访问 注意:私钥和证书都需要采用DER格式

openssl genrsa -des3 -out ca.key 4096
openssl req -new -x509 -days 365 -key ca.key -out ca.pem
openssl genrsa -des3 -out server.key 4096
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca.key -set_serial 01 -out server.pem
sudo mkdir -p /var/ssl/neo4j
sudo openssl x509 -outform der -in server.pem -out /var/ssl/neo4j/server.crt
sudo openssl rsa -in server.key -inform PEM -out /var/ssl/neo4j/server.key -outform DER

另请参见[my notes]()

自3.0起,此项已更改

  • 打开
    /etc/neo4j/neo4j.conf
    ,取消注释并更改以下行:

      # dbms.directories.certificates=/PATH/TO/YOUR/CERTIFICATES
    
  • 确保目录中包含名为
    neo4j.key
    neo4j.cert
    的证书文件

  • 确保文件可以由neo4j写入

如果您只使用
.pem
文件,您可以将它们重命名为
.cert
.key
,它们都是纯文本文件,
.pem
只是一个扩展名

用于存储Neo4j用于TLS连接的证书的目录

证书存储在证书目录中,称为
neo4j.key
neo4j.cert


注意:确保公用名称与服务器的ip地址或DNS名称相同。您可以让任何证书颁发机构对server.csr进行签名。在这种情况下,跳过第1、2、5行。只需使用server.csr。签名后,将已签名的证书重命名为server.pem,并从第6行继续。另请参见我获取由以下原因引起的
:java.io.IOException:无法识别的私钥格式。
使用neo4j 4.0.4。