web-dev-qa-db-ja.com

UbuntuでLetsencrypt SSLを使用するようにMongoDBを正しく構成する方法

UbuntuでLetsencrypt SSLを使用するようにMongoDBを正しく構成するにはどうすればよいですか?

Letsencryptを使用してSSL証明書を作成し、それを次の方法で組み合わせました。

cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem > /etc/ssl/mongo.pem

そしてmongo configを次のように設定します:

net:
  port: 27017
  bindIp: 0.0.0.0
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongo.pem

しかし、Mongoを起動しようとすると、次のエラーが発生します。

No SSL certificate validation can be performed since no CA file has been provided; please specify an sslCAFile parameter

CAFileを正しく設定するにはどうすればよいですか? Ubuntuは通常、独自のファイルにさまざまなルート証明書の束を含む「CAパス」を使用していませんか? CURL CAバンドルを使用してみましたが、それも機能しませんでした。

私はMongo v3.0.12とUbuntu 14.04を使用しています

8
Petah

間違ったpemファイルを結合します。 privkey.pemcert.pemを組み合わせる必要があります。

cat /etc/letsencrypt/live/example.com/privkey.pem /etc/letsencrypt/live/example.com/cert.pem > /etc/ssl/mongo.pem

CAFileの場合、IdenTrust DST Root CA X3を https://www.identrust.com/certificates/trustid/root-download-x3.html からダウンロードする必要があります。

Sudo touch /etc/ssl/ca.crt
Sudo chmod 777 /etc/ssl/ca.crt

Webサイトの証明書を追加し、----- BEGIN CERTIFICATE -----および----- END CERTIFICATE -----行を追加して、ファイルを保存する新しい行で終了していることを確認します。

Sudo vi /etc/ssl/ca.crt

次に、以下を使用してcrtファイルをpemに変換します。

Sudo touch /etc/ssl/ca.pem
Sudo chmod 777 /etc/ssl/ca.pem
Sudo openssl x509 -in /etc/ssl/ca.crt -out /etc/ssl/ca.pem -outform PEM

そして、Let's Encryptのchain.pemと組み合わせて、単一のファイルに結合しますca.pem

Sudo cat /etc/letsencrypt/live/example.com/chain.pem >> /etc/ssl/ca.pem

CAFileを設定するには、次のmongo構成セットアップに従います。

net:  
  port: 27017
  bindIp: 0.0.0.0
  ssl:  
    mode: requireSSL  
    PEMKeyFile: /etc/ssl/mongo.pem
    CAFile: /etc/ssl/ca.pem

MongoDBを再起動します。

Sudo systemctl restart mongod
Sudo systemctl status mongod

Let's Encrypt証明書を更新する瞬間を忘れないでください。mongo.pemca.pemも更新する必要があります。

9
Herman Fransen

必要なCAファイルはLetsencryptから取得できます。ここで中間証明書の1つを探します。

https://letsencrypt.org/certificates/

次に、その証明書へのパスを SSL CAFile オプションで指定します。

2
Adam C