cron jobs for encrypt ssl renouvellement avec mongod sur nginx

J’ai un serveur d’parsing qui fonctionne sur Océan numérique en suivant ce guide . Lors de la configuration de mongo db pour la migration, vous exécutez cette commande:

sudo cat /etc/letsencrypt/archive/domain_name/{fullchain1.pem,privkey1.pem} | sudo tee /etc/ssl/mongo.pem 

Après cela, le tutoriel dit:

Vous devrez répéter la commande ci-dessus après avoir renouvelé votre certificate Let ‘s Encrypt. Si vous configurez le renouvellement automatique du certificate Let ‘s Encrypt, n’oubliez pas d’inclure cette opération.

Pour ce faire, j’ai ajouté un cronjob à mes cronjobs, comme ceci:

 30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log 33 2 * * 1 cat /etc/letsencrypt/archive/DOMAIN/{fullchain1.pem,privkey1.pem} | tee /etc/ssl/mongo.pem 35 2 * * 1 /etc/init.d/nginx reload 

Cependant, après le redémarrage du serveur le lundi, mongod ne démarrera pas car il ne pourra pas trouver / lire /etc/ssl/mongo.pem .

Comment puis-je configurer cela correctement? Dois-je chown / chmod le fichier dans un autre cronjob?

Merci de votre aide!

J’ai rencontré un problème avec le script ci-dessus. Malheureusement, encrypt ne remplace pas fullchain et privkey mais ajoute de nouvelles versions lorsque le certificate doit être renouvelé: privkey2.pem

J’ai donc dû modifier le script en conséquence. J’ai aussi mis la partie Renouveau et Nginx à l’intérieur, donc nous n’avons besoin que d’un seul travail:

 #!/bin/bash # stop nginx /etc/init.d/nginx stop # check for new cert /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log # combine latest letsencrypt files for mongo # find latest fullchain*.pem newestFull=$(ls -v /etc/letsencrypt/live/DOMAIN/fullchain*.pem | tail -n 1) echo "$newestFull" # find latest privkey*.pem newestPriv=$(ls -v /etc/letsencrypt/live/DOMAIN/privkey*.pem | tail -n 1) echo "$newestPriv" # combine to mongo.pem cat {$newestFull,$newestPriv} | tee /etc/ssl/mongo.pem # set rights for mongo.pem chmod 600 /etc/ssl/mongo.pem chown mongodb:mongodb /etc/ssl/mongo.pem # restart mongo /sbin/restart mongod # start nginx /etc/init.d/nginx start 

Ok, alors voici ce que j’ai fini avec. J’ai écrit un petit script:

 #!/bin/bash # combine letsencrypt files for mongo cat /etc/letsencrypt/archive/DOMAIN/{fullchain1.pem,privkey1.pem} | tee /etc/ssl/mongo.pem # set rights for mongo.pem chmod 600 /etc/ssl/mongo.pem chown mongodb:mongodb /etc/ssl/mongo.pem # restart mongo /sbin/restart mongod 

et lancez-le avec un job cron:

 30 2 * * 1 /opt/letsencrypt/letsencrypt-auto renew >> /var/log/le-renew.log 33 2 * * 1 cat /root/myScript 35 2 * * 1 /etc/init.d/nginx reload