Änderungen von Dokument Server-Zertifikat
Zuletzt geändert von Jonas Jelten am 2024/08/23 12:30
Von Version 3.1
bearbeitet von Leo Fahrbach
am 2023/05/19 14:59
am 2023/05/19 14:59
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 2.1
bearbeitet von Leo Fahrbach
am 2023/05/19 14:46
am 2023/05/19 14:46
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -20,14 +20,16 @@ 20 20 1 Um auf der Maschine die Dienste neuzustarten/neuzuladen, wenn ein neues Zertifikat da ist, legt man scripte in `/usr/local/cert.d/` ab, die mit `run-parts(8)` kompatibel sind. Das erste Argument ist der Teilpfad zum neuen Zertifikat. Unten ist ein Beispielscript für einen Apache2-reload. 21 21 1 Nun kann man mit `rbg-cert` Zertifikate beantragen: 22 22 23 - ```24 -# Zur Kontrolle die konfigurierten Namen abfragen, fehlende in der StrukturDB eintragen! 23 +{{html wiki="true"}} 24 +{{code}}# Zur Kontrolle die konfigurierten Namen abfragen, fehlende in der StrukturDB eintragen! 25 25 rbg-cert --show 26 -# Initiale Beantragung oder nach Namens änderung neues Zertifikat beantragen:26 +# Initiale Beantragung oder nach Namensänderung neues Zertifikat beantragen: 27 27 rbg-cert --force-request 28 -# Nach ein paar Minuten das Zertifikat downloaden (oder man wartet bis der systemd-timer l äuft):28 +# Nach ein paar Minuten das Zertifikat downloaden (oder man wartet bis der systemd-timer läuft): 29 29 rbg-cert 30 -``` 30 +{{/code}} 31 +{{/html}} 32 + 31 31 `rbg-cert.service` und `rbg-cert.timer` **verlängern** das Zertifikat automatisch 30 Tage vor Ablauf. 32 32 33 33 Bitte modifiziert unsere Software nicht, denn sie wird zentral von uns aktualisiert. Bei Fragen/Anregungen gerne die Systemgruppe kontaktieren. ... ... @@ -41,14 +41,17 @@ 41 41 42 42 Im `VirtualHost` Block in `/etc/apache2/sites-enabled/MYSERVICE.conf`: 43 43 44 -``` 46 +{{html wiki="true"}} 47 +{{code}} 45 45 SSLCertificateFile /etc/apache2/tls/fullchain.pem 46 46 SSLCertificateKeyFile /etc/apache2/tls/key.pem 47 -``` 50 +{{/code}} 51 +{{/html}} 48 48 49 49 Und der automatische renew-hook (`chmod +x` nicht vergessen!) 50 50 51 -``` 55 +{{html wiki="true"}} 56 +{{code}} 52 52 $ cat /usr/local/cert.d/apache2 53 53 #!/bin/bash 54 54 set -o nounset ... ... @@ -62,12 +62,13 @@ 62 62 install --mode 0644 "$1".fullchain.pem /etc/apache2/tls/fullchain.pem 63 63 64 64 systemctl reload apache2.service 65 -``` 70 +{{/code}} 71 +{{/html}} 66 66 67 67 ### Beispiel für nginx 68 68 69 - ```70 -$ cat /etc/nginx/conf.d/ssl.conf 75 +{{html wiki="true"}} 76 +{{code}}$ cat /etc/nginx/conf.d/ssl.conf 71 71 # config from https://mozilla.github.io/server-side-tls/ssl-config-generator/ 72 72 73 73 ssl_certificate /etc/nginx/tls/fullchain.pem; # cert + parent CAs except root CA ... ... @@ -89,11 +89,13 @@ 89 89 90 90 add_header X-XSS-Protection "1; mode=block"; 91 91 add_header X-Content-Type-Options nosniff; 92 -``` 98 +{{/code}} 99 +{{/html}} 93 93 94 94 Und der renew-hook (`chmod +x` nicht vergessen!) 95 95 96 -``` 103 +{{html wiki="true"}} 104 +{{code}} 97 97 $ cat /usr/local/cert.d/nginx 98 98 #!/bin/bash 99 99 set -o nounset ... ... @@ -107,11 +107,13 @@ 107 107 install --mode 0644 "$1".fullchain.pem /etc/nginx/tls/fullchain.pem 108 108 109 109 systemctl reload nginx.service 110 -``` 118 +{{/code}} 119 +{{/html}} 111 111 112 112 ### Allgemeines Beispiel 113 -``` 114 -$ cat /usr/local/cert.d/yourservice 122 + 123 +{{html wiki="true"}} 124 +{{code}}$ cat /usr/local/cert.d/yourservice 115 115 #!/bin/bash 116 116 set -o nounset 117 117 set -o errexit ... ... @@ -122,7 +122,8 @@ 122 122 #install --mode 0644 --owner myowner "$1".chain.pem /etc/mydaemon/tls/chain.pem 123 123 #install --mode 0644 --owner myowner "$1".fullchain.pem /etc/mydaemon/tls/chainwithcert.pem 124 124 #systemctl reload mydaemon 125 -``` 135 +{{/code}} 136 +{{/html}} 126 126 127 127 ## Serverzertifikat für alle anderen Maschinen, deren Namen über die Strukturdb verwaltet werden 128 128 ... ... @@ -134,8 +134,9 @@ 134 134 135 135 Das Programm `rbg-cert` verwendet auch die API, d.h. man kann es auf andere Maschinen portieren. 136 136 Zur Vorbereitung auf den Einsatz von rbg-cert sind folgende Schritte notwendig: 137 -``` 138 -echo $UQN > /etc/uqn 148 + 149 +{{html wiki="true"}} 150 +{{code}}echo $UQN > /etc/uqn 139 139 apt install strongswan-pki 140 140 apt install python3-cryptography 141 141 ... ... @@ -148,7 +148,8 @@ 148 148 149 149 pki --pub --in $UQN.privkey.pem --outform pem > $UQN.pubkey.pem 150 150 # Diesen pubkey dann in der StrukturDB für PIRA registrieren 151 -``` 163 +{{/code}} 164 +{{/html}} 152 152 153 153 `rbg-cert` und systemd timer/service sind von einer aktuellen Ubuntu-VM zu kopieren. 154 154 ... ... @@ -162,12 +162,13 @@ 162 162 163 163 Production: 164 164 165 - ```166 -URL: https://pira.in.tum.de/v0/server/[UQN] 178 +{{html wiki="true"}} 179 +{{code}}URL: https://pira.in.tum.de/v0/server/[UQN] 167 167 168 - GET →{cert, chain, fullchain, names, should_renew}181 + GET → {cert, chain, fullchain, names, should_renew} 169 169 POST {csr} 170 -``` 183 +{{/code}} 184 +{{/html}} 171 171 172 172 Hier sind keine Tests zulässig. 173 173 ... ... @@ -177,13 +177,13 @@ 177 177 178 178 Manuelle Ausstellung mit Genehmigung durch RBG nur möglich, wenn technisch weder rbg-cert noch Let's Encrypt möglich sind: 179 179 180 -1 .Auf dem Zielserver z.B. nach `/etc/ssl/private`181 - 2.Certificate Signing Request (`csr`) erzeugen182 - `opensslreq-newkeyrsa:3072-nodes-keyout SERVERNAME.key -out SERVERNAME.csr -subj '/C=DE/O=Technische Universitaet Muenchen/CN=SERVERNAME.cit.tum.de'`183 - 3.[Bei der CA](https://cert-manager.com/customer/DFN/ssl/dUIh9O1QABKy40PikBgN):184 - 1 .`.csr` hochladen185 - 2.unter "Subject Alternative Names" alle weiteren ggf. benötigten Namen eintragen186 - 3.alle anderen Felder leer lassen187 - 4.Bitte den `commonName` (CN) mit Begründung warum rbg-cert und Let's Encrypt nicht möglich sind per E-Mail an rbg@in.tum.de schicken.188 - 5.auf "Certificate approved" E-Mail warten, "Certificate ID" entnehmen189 - 6.[herunterladen](https://cert-manager.com/customer/DFN/idp/ssl/dUIh9O1QABKy40PikBgN?action=download) mit ID und "Certificate (w/issuer after)"194 +1 Auf dem Zielserver z.B. nach `/etc/ssl/private` wechseln 195 + 1 Certificate Signing Request (`csr`) erzeugen 196 + 197 + 1 [Bei der CA](https://cert-manager.com/customer/DFN/ssl/dUIh9O1QABKy40PikBgN): 198 + 1 `.csr` hochladen 199 + 1 unter "Subject Alternative Names" alle weiteren ggf. benötigten Namen eintragen 200 + 1 alle anderen Felder leer lassen 201 + 1 Bitte den `commonName` (CN) mit Begründung warum rbg-cert und Let's Encrypt nicht möglich sind per E-Mail an rbg@in.tum.de schicken. 202 + 1 auf "Certificate approved" E-Mail warten, "Certificate ID" entnehmen 203 + 1 [herunterladen](https://cert-manager.com/customer/DFN/idp/ssl/dUIh9O1QABKy40PikBgN?action=download) mit ID und "Certificate (w/issuer after)"