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

时间:2015-04-18 11:40:49

标签: ssl neo4j r-neo4j

最近我遇到了生成Neo4j中没有绑定到0.0.0.0的自定义证书的问题。事实证明,Neo4j - 与文档相反 - 期望公钥和私钥的DER证书。

我将在回答这个问题时发表经验教训。

罗布

2 个答案:

答案 0 :(得分:1)

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

另见[我的笔记](http://www.blaeu.com/nl/doku.php/Notes

答案 1 :(得分:1)

从3.0开始,这已经改变了。

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

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

  • 确保neo4j可以写入文件。

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

请参阅reference

  

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

     

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