Squid Sub-CA von der eigenen Intermediate CA ausstellen
Prüfen ob die eigene Intermediate CA eine Sub-CA ausstellen darf
- openssl x509 -in ./it2XX-ca.crt -noout -text | grep -A3 "Basic Constraints"
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:1
- pathlen
- 1 — es darf noch eine CA-Ebene darunter ausgestellt werden
- pathlen
- 0 — es darf KEINE Sub-CA mehr ausgestellt werden
- pathlen nicht definiert — beliebig viele Ebenen erlaubt
OpenSSL Konfiguration
- Konfigurationsdatei anlegen
[ req ]
default_bits = 4096
default_md = sha256
prompt = no
distinguished_name = dn
req_extensions = req_ca
[ dn ]
CN = Squid Sub Intermediate CA
[ req_ca ]
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
[ v3_sub_intermediate_ca ]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
basicConstraints = critical, CA:true, pathlen:0
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
- pathlen
- 0 — die Squid Sub-CA darf selbst keine weiteren CAs ausstellen
Key und CSR erstellen
- openssl req -new -newkey rsa:4096 -nodes -sha256 -keyout proxyCA.key.pem -out proxyCA.csr.pem -config proxy-openssl.cnf
CSR mit der Kurs-CA signieren
- openssl x509 -req -in proxyCA.csr.pem -CA it2XX-ca.crt -CAkey it2XX-ca.key -CAcreateserial -out proxyCA.cert.pem -days 3650 -sha256 -extfile proxy-openssl.cnf -extensions v3_sub_intermediate_ca
- Wichtig
- -extensions v3_sub_intermediate_ca — sonst fehlen die CA-Extensions im Zertifikat
Ergebnis prüfen
- openssl x509 -in proxyCA.cert.pem -noout -text | grep -A3 "Basic Constraints"
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
- openssl verify -CAfile it2XX-ca.crt proxyCA.cert.pem
proxyCA.cert.pem: OK
Zertifikate für Squid zusammenführen
- Datei enthält den privaten Key — Zugriffsrechte einschränken
- cat proxyCA.cert.pem it2XX-ca.crt proxyCA.key.pem > squid-subca.pem
- chmod 600 squid-subca.pem