====== Information ====== * Let's Encrypt ((https://letsencrypt.org/)) * Certbot ((https://certbot.eff.org/)) * [[information:realm_of_espionage|Realm of Espionage]] ===== Prerequisites ===== * [[bsd:server:freebsd_16.0|FreeBSD 16.0]] * [[servers:bsd:freenginx_php_php-fpm|freenginx]] ====== Dependencies ====== su - pkg install 'py311-certbot' ====== Settings ====== * :!: Set ''email'' su - mkdir -p '/usr/local/etc/letsencrypt' && ee '/usr/local/etc/letsencrypt/cli-custom.ini' verbose = 'true' max-log-backups = '0' text = 'true' non-interactive = 'true' standalone = 'true' force-renewal = 'true' agree-tos = 'true' ######################################## email = espionage724@x ######################################## no-eff-email = 'true' rsa-key-size = '4096' redirect = 'true' hsts = 'true' uir = 'true' staple-ocsp = 'false' key-type = 'ecdsa' elliptic-curve = 'secp384r1' domains = 'realmofespionage.xyz, wiki.realmofespionage.xyz, media.realmofespionage.xyz, blog.realmofespionage.xyz, social.realmofespionage.xyz, forums.realmofespionage.xyz, status.realmofespionage.xyz, files.realmofespionage.xyz, test.realmofespionage.xyz' # End ====== Obtain Certs ====== * :!: If it passes the dry run, remove the ''--dry-run'' argument and re-run su - certbot 'certonly' --config '/usr/local/etc/letsencrypt/cli-custom.ini' --dry-run ====== Scripts ====== ===== Renewal ===== mkdir -p ~/'.local/scripts/www/certbot' && ee ~/'.local/scripts/www/certbot/certbot-renewal.sh' && chmod +x ~/'.local/scripts/www/certbot/certbot-renewal.sh' #!/bin/sh cd '/tmp' '/usr/sbin/service' 'nginx' stop '/usr/local/bin/certbot' 'certonly' --config '/usr/local/etc/letsencrypt/cli-custom.ini' --quiet '/usr/sbin/service' 'nginx' start # End su 'root' -c ~/'.local/scripts/www/certbot/certbot-renewal.sh' ====== cron ====== ===== Renewal ===== * Weekly (Sunday) ''07:00:00 AM'' su - ee '/etc/cron.d/certbot-renewal' # SHELL=/bin/sh 0 7 * * sun root '/home/espionage724/.local/scripts/www/certbot/certbot-renewal.sh' # End