web-dev-qa-db-ja.com

Neo4jでLetsEncrypt証明書を使用する

LetsEncryptによって生成された証明書ファイルをNeo4jインスタンスと一緒に使用するにはどうすればよいですか? LetsEncryptによって生成されるファイルは次のとおりです。

  • cert.pem
  • chain.pem
  • fullchain.pem
  • privkey.pem

PEMからDERへの変換を使用して、これまで運がなかった OpenSSLを介した変換 を試しました。 Neo4jは、起動時に証明書が見つからないことに不満を持っています。問題は、LetsEncrypt証明書をNeo4jが使用できるものに変換する方法です。

セットアップの詳細:

  • 証明書は/var/lib/neo4j/certificates/名前付きneo4j.{cert,key}、権限600、 が所有している neo4j:nogroup。これはすべて ドキュメント に従っているようです。
  • 構成には、証明書パスを指定するための次の行があります。dbms.directories.certificates=/var/lib/neo4j/certificates
  • 構成では、HTTPSを介したリモートアクセスも有効になっています:dbms.connector.https.address=0.0.0.0:7473

Neo4jを再起動すると、次のエラーメッセージが表示されます。

WARN  Illegal character 0x16 in state=START for buffer HeapByteBuffer@5a260174[p=1,l=193,c=8192,r=192]={\x16<<< SEVERAL_LINES_OF_HEX_JIBBERISH_HERE }
WARN  badMessage: 400 Illegal character 0x16 for HttpChannelOverHttp@5d682358{r=0,c=false,a=IDLE,uri=-}
8

次のプロセスを使用して、neo4jでletsencrypt証明書を使用することができました。

  • シェルスクリプトとして実装されたletsencrypt/acmeクライアント メソッドを使用して、ドメインの証明書を作成しました。
  • 証明書を取得するスクリプトを実行して3つのファイルが生成されますfullchain.pemcert.pemprivkey.pem
  • それらをneo4jのcertificatesディレクトリにコピーします

    mv /path_to_lets_encrypt_certs_dir/fullchain.pem /var/lib/neo4j/certificates/neo4j.cert

    mv /path_to_lets_encrypt_certs_dir/privkey.pem /var/lib/neo4j/certificates/neo4j.key

  • Neo4jを再起動します

anirudh@prok:~# /var/lib/neo4j/bin/neo4j restart
Stopping Neo4j.. stopped
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended.  See the Neo4j manual.
Started neo4j (pid 17608). By default, it is available at  https://your-domain:7473/
There may be a short delay until the server is ready.
See /var/lib/neo4j/logs/neo4j.log for current status.

これで実行されます。お役に立てれば!

10