Hallo,
ich würde gerne im Heimnetzwerk einige Dienste über https erreichbar machen, von außen ist erst mal kein Zugriff vorgesehen - daher fallen Lösungen wie Let's Encrypt vermutlich weg.
Bleibt also noch eine eigene CA, mit der man die nötigen Zertifikate signieren und in Verbindung mit dem auf den Clients importierten Root-Zertifikat nutzen kann.
Mit SAN-Attributen für die möglichen Hostnames/IP-Addressen (ohne meckert Chrome) habe ich mir diese Lösung zum erstellen und signieren der Zertifikate zusammengesucht, was mit nginx nach der Konfigurationsempfehlung von https://bettercrypto.org/#_nginx grundsätzlich zu funktionieren scheint:
openssl req -new \ -subj "/C=DE/CN=ca-test.fritz.box" \ -addext "subjectAltName = DNS:ca-test.fritz.box" \ -addext "subjectAltName = DNS:ca-test" \ -addext "subjectAltName = IP:192.168.1.116" \ -key ssl/private/ca-test-certificate.key \ -out ssl/public/ca-test-certificate.csr \ -sha512 openssl x509 -req \ -extfile <(printf "subjectAltName=DNS:ca-test.fritz.box, DNS:ca-test, IP:192.168.1.116") \ -in ssl/public/ca-test-certificate.csr \ -CA ca/public/my-ca.pem \ -CAkey ca/private/my-ca.key \ -CAcreateserial \ -out ssl/public/ca-test-certificate.pem \ -days 30 \ -sha512
Ist das eine akzeptable Vorgehensweise oder gibt es da eventuell noch eine bessere Lösung (die in CA erwähnte CA.pl aus dem openssl-Paket scheint erst mal nur eine zusätzliche Abstraktionsebene zu sein, bei der ich noch nicht ganz verstanden habe, welchen Vorteil die haben soll)?
Lohnt es sich im CN die zusätzlichen Einträge anzugeben, die auch im SAN stecken oder kommen gängige Clients damit zurecht?