====== Information ======
* Let's Encrypt
* Certbot
* [[information:realm_of_espionage|Realm of Espionage]]
===== Prerequisites =====
* [[linux:distros:server:opensuse_tumbleweed_server|openSUSE Tumbleweed (Server)]]
* [[servers:linux:nginx_php_php-fpm|nginx]]
====== Dependencies ======
****
sudo zypper install 'python313-certbot'
====== Settings ======
sudo mkdir -p '/etc/letsencrypt' && sudo -e '/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'
pre-hook = systemctl stop 'nginx'
post-hook = systemctl start 'nginx'
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
sudo 'certbot' 'certonly' --config '/etc/letsencrypt/cli-custom.ini' --dry-run
sudo systemctl stop 'nginx'
====== Automatic Cert Renewal ======
===== Service =====
sudo -e '/etc/systemd/system/certbot-renew-custom.service'
[Service]
Type=oneshot
WorkingDirectory=/etc/letsencrypt
ExecStart='/usr/bin/certbot' 'certonly' --config '/etc/letsencrypt/cli-custom.ini' --quiet
ExecStartPost='/usr/bin/sync'
# End
===== Timer =====
* Weekly (Sunday) ''07:00:00 AM''
sudo -e '/etc/systemd/system/certbot-renew-custom.timer' && sudo systemctl daemon-reload && sudo systemctl enable 'certbot-renew-custom.timer' --now
[Unit]
Description=Let's Encrypt Certificate Renewal
After=network-online.target
Wants=network-online.target
[Timer]
OnCalendar=Sun *-*-* 07:00:00
Persistent=true
[Install]
WantedBy=multi-user.target
# End
sudo systemctl start 'certbot-renew-custom' && sudo systemctl status 'certbot-renew-custom' -l