- Abstract: Create Certificate
- Generate key
- Generate signing request
- Sign the key
- Create server certificate
- Set permission
- Set owner
- Copy into place
- Restart services
- Application: Self-Signed Certificate
- # openssl genrsa -out x.key 2048
- # openssl req -new -key x.key -out x.csr
- # openssl x509 -req -days 3650 -in x.csr -signkey x.key -out x.crt
- # cat x.crt x.key > servercert.pem
- # chmod 644 servercert.pem
- # chown root:qmail servercert.pem
- # cp -p servercert.pem /var/qmail/control
- Application: Godaddy Signed Certificate
- # openssl genrsa -out x.key 2048
- # openssl req -new -key x.key -out x.csr
- Submit signing request (x.csr) to Godaddy; Later download signed key (crt and crt bundle)
- # cat x.key 7531fdb8504afe19.crt gd_bundle-g2-g1.crt > servercert.pem
- # chmod 644 servercert.pem
- # chown root:qmail servercert.pem
- # cp -p servercert.pem /var/qmail/control
- Let's Encrypt CentOS 6 (Automatic, assumes working web server)
- # mkdir /opt/certbot
- # cd /opt/certbot
- # wget https://dl.eff.org/certbot-auto
- # chmod a+x certbot-auto
- # ./certbot-auto --apache -d mydomain.com -d mail.mydomain.com certonly --email me@mydomain.com --renew-by-default --agree-tos --text
- # yum install python-certbot-apache
- # certbot --apache -d mydomain.com -d mail.mydomain.com
- Add to Apache Virtual CentOS 6 & 7/8
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
- Add to Dovecot CentOS 6 & 7/8
ssl_cert = </etc/letsencrypt/live/mydomain.com/fullchain.pem ssl_key = </etc/letsencrypt/live/mydomain.com/privkey.pem
- Add to Qmail CentOS 6 & 7/8
cp -p /var/qmail/control/servercert.pem /var/qmail/control/servercert.pem.bak cat /etc/letsencrypt/live/mydomain.com/privkey.pem /etc/letsencrypt/live/mydomain.com/fullchain.pem > /var/qmail/control/servercert.pem Springdale, Rocky, Alma Linux 9 may need the private key last cat /etc/letsencrypt/live/mydomain.com/fullchain.pem /etc/letsencrypt/live/mydomain.com/privkey.pem > /var/qmail/control/servercert.pem
- Let's Encrypt auto renewal
Add to cron nightly renew of certs (These certificates expire every 3 months) 0 0 * * * /opt/certbot/certbot-auto renew #CentOS 6 0 0 * * * /opt/certbot/certbot renew #CentOS 7
- # qmailctl stop
- # qmailctl start
- # systemctl restart dovecot
- # systemctl restart httpd