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を使用しています
間違ったpemファイルを結合します。 privkey.pem
とcert.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.pem
とca.pem
も更新する必要があります。
必要なCAファイルはLetsencryptから取得できます。ここで中間証明書の1つを探します。
https://letsencrypt.org/certificates/
次に、その証明書へのパスを SSL CAFile オプションで指定します。