Difference between revisions of "SSL"
(→Stap 8) |
|||
Line 119: | Line 119: | ||
Profit. | Profit. | ||
+ | |||
+ | == Let's Encrypt introductie== | ||
+ | De website van de introductie intro-utrecht.nl gebruikt een eigen certificaat. Andere websites die genoemd staan in /etc/nginx/conf.d/vm-www-dmz.list werken nu ook via dit certificaat. Deze worden op het moment niet echt meer gebruikt, maar mochten hier problemen zijn met ssl ligt dat hier aan. | ||
+ | Voer het volgende commando uit op ernst om het intro certificaat te vernieuwen: | ||
+ | certbot certonly --webroot -d intro-utrecht.nl,www.intro-utrecht.nl,bachelor.intro-utrecht.nl | ||
+ | |||
+ | Als er gevraagd wordt om een webroot, vul dan in: | ||
+ | /var/www/bachelor.intro-utrecht.nl/.well-known | ||
[[Category:Sysop]] | [[Category:Sysop]] |
Revision as of 16:46, 7 July 2022
Contents
Uitleg
SSL wordt gebruikt om netwerk verbindingen te beveiligingen, zoals http en imap verkeer. Hiertoe gebruiken we bij a-eskwadraat een reverse proxy die het verkeer versleuteld voor de buitenwereld.
Voor het certificaat van A-Eskwadraat maken we op dit moment gebruik van xolphin: https://www.sslcertificaten.nl/
Wachtwoord van certificaat halen
Indien de private key is beveiligd met een wachtwoord, dan is dit wachtwoord ook nodig bij het opstarten. Dit kan vervelend zijn wanneer de server opnieuw opstart zonder dat iemand ter plaatse is om het wachtwoord in te tikken. Het wachtwoord kan met het volgende commando worden verwijderd. Zorg hierbij dat de shell zich bevindt in de map waarin de private key staat opgeslagen:
[root@server cert]# openssl rsa -in encrypted_private_key.key -out private_key.key
Vervang hierbij encrypted_private_key.key met de naam van de private key, en vervang private_key.key met de gewenste bestandsnaam voor de nieuwe private key zonder wachtwoord.
Aanmaken CSR
stap 1
Maak met behulp van SSH verbinding met de server en log in als root. Ga met behulp van het cd-commando naar de map toe waar de certificaten moeten worden bewaard:
[root@server]# cd /etc/ssl/cert/
stap 2
Met het volgende commando kunnen de Private Key en de CSR worden gegenereerd:
[root@server]# openssl req -nodes -newkey rsa:2048 \ -keyout a-eskwadraat_nl.`date +%Y%m%d`.key \ -out a-eskwadraat_nl.`date +%Y%m%d`.csr \ -subj '/C=NL/ST=Utrecht/L=Utrecht/O=A-Eskwadraat/OU=Sysop/CN=*.a-eskwadraat.nl/emailAddress=sysop@a-eskwadraat.nl'
stap 3
OpenSSL genereert twee bestanden: de Private Key (met als naam a-eskwadraat_nl.{datum}.key) en de CSR (met als naam a-eskwadraat_nl.{datum}.csr).
stap 4
Beveilig de certificaatbestanden zodat niemand behalve de rootgebruiker erbij kan:
[root@server cert]# chmod 600 *.key *.csr
stap 6
Nu kan de CSR met behulp van het cat-commando worden weergegeven:
[root@server cert]# cat a-eskwadraat_nl.`date +%Y%m%d`.csr
De velden emailadres, optionele bedrijfsnaam en uitwisselingswachtwoord kunnen leeggelaten worden bij het aanvragen van een SSL certificaat.
IPA SSL intern
Hier staat eigenlijk alles dat je moet weten: http://www.freeipa.org/page/Apache_SNI_With_Kerberos
Het komt hier op neer (merk op dat 'dummyhost' de naam van de virtualhost is):
mkdir /etc/httpd/certs semanage fcontext -a -t cert_t '/etc/httpd/certs(/.*)?' && restorecon -v /etc/httpd/certs ipa host-add dummyhost.example.com --desc="Dummy Host" --location="<fqdn-of-webserver>" ipa host-add-managedby dummyhost.example.com --hosts="<fqdn-of-webserver>" ipa service-add HTTP/dummyhost.example.com ipa service-add-host HTTP/dummyhost.example.com --hosts="<fqdn-of-webserver>" ipa-getcert request -r -f /etc/httpd/certs/dummyhost.crt -k /etc/httpd/certs/dummyhost.key -N CN=dummyhost.example.com -D \ dummyhost.example.com -K HTTP/dummyhost.example.com
Het zou kunnen dat je de package ipa-admintools moet installeren.
Let's Encrypt
Stap 1
Inloggen op ernst.
Stap 2
Certbot commando uitvoeren:
certbot certonly --manual -d *.a-eskwadraat.nl -d a-eskwadraat.nl --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01
Stap 3
Inloggen op vm-dns-auth.
Stap 4
Twee TXT-records aanpassen in /etc/nsd/zones/a-eskwadaraat.nl.zone en timestamps aanpassen (van hele bestand).
Stap 5
service nsd restart
Hierna uitloggen op vm-dns-auth.
Stap 6
Ga verder met certbot script uit stap 2.
Stap 7
service nginx restart
Stap 8
Certificaat kopiëren naar mail server.
Log in op vm-mailpp
Verwijder de oude certificaten.
rm -f /etc/ssl/certs/mail_a-eskwadraat_nl.crt rm -f /etc/ssl/certs/mail_a-eskwadraat_nl.key
Kopieër de nieuwe certificaten vanaf Ernst:
scp root@ernst:/etc/letsencrypt/live/a-eskwadraat.nl/fullchain.pem /etc/ssl/certs/mail_a-eskwadraat_nl.crt scp root@ernst:/etc/letsencrypt/live/a-eskwadraat.nl/privkey.pem /etc/ssl/certs/mail_a-eskwadraat_nl.key
Herstart postfix en dovecot
systemctl restart postfix systemctl restart dovecot
Stap 9
Profit.
Let's Encrypt introductie
De website van de introductie intro-utrecht.nl gebruikt een eigen certificaat. Andere websites die genoemd staan in /etc/nginx/conf.d/vm-www-dmz.list werken nu ook via dit certificaat. Deze worden op het moment niet echt meer gebruikt, maar mochten hier problemen zijn met ssl ligt dat hier aan. Voer het volgende commando uit op ernst om het intro certificaat te vernieuwen:
certbot certonly --webroot -d intro-utrecht.nl,www.intro-utrecht.nl,bachelor.intro-utrecht.nl
Als er gevraagd wordt om een webroot, vul dan in:
/var/www/bachelor.intro-utrecht.nl/.well-known