Ziel ist, dass interne Seiten ohne Sicherheitswarnung im Browser aufgerufen werden können. Dazu wird ein Self Signed SSL Zertifikat bei einer Windows PKI angefordert und auf einem Linux Server installiert.
Zuerst erstellen wir mit OpenSSL auf dem Linuxserver eine Zertifikatanforderung, welche wir später über dem Remotedesktop auf der Windows PKI einfügen können (CSR). Bei diesem Prozess werden 3 Dateien erzeugt: eine .key Datei, eine .csr Datei und ein .cer (vielleicht). Wichtig sind vor allem der key und die Cert-Anforderung (csr). Mit dieser können wir in die Windows PKI gehen und ein entsprechendes Zertifikat erstellen. (siehe https://cbudde.com/tutorials/setting-up-windows-root-ca-on-centos-6-9-linux-server/ )
Für die CSR wird eine Konfigurationsdatei (opennssl.cnf) benötigt, die den heutigen Standards nachkommt. Generell muss der common name (hostname) dem Servernamen/der ServerIP entsprechen. Für Google Chrome muss zusätzlich ein Alternativer DNS Name eingetragen werden (SAN). Diese Konfigurationsdatei wird bei der Zertifikatsanforderung zusätzlich angegeben à -config san1.cnf
Mit diesem Befehl kann der CSR überprüft werden: openssl req -noout -text -in server.csr
Wenn der CSR richtig erstellt wurde, kann über die Windows PKI das Zertifikat angefordert werden (CSR öffnen, Text in das Zert. Formular der PKI kopieren.). Danach das erstellte Zertifikat (.cer) von der Windows PKI sowie die .csr und .key Files von der Zertifikatsanforderung von opeenssl auf den Webserver kopieren. CSR und KEY File müssen in /etc/pki/tls/private/ und das .cer File in /etc/pki/tls/certs
Am Ende muss noch die httpd.conf bzw. die ssl.conf des Apache angepasst werden (SSLCertificateFile und SSLCertificateKeyFile auf die entsprechenden Dateien einstellen)
cp service.something.cer /etc/pki/tls/certs
cp ca.key /etc/pki/tls/private/service.something.key
cp ca.csr /etc/pki/tls/private/service.something.csr
Chrome und Edge vertrauen automatisch auch den Stammzertifizierungsstellen, welchen auch der lokale Rechner vertraut. Firefox muss die eigene Stammzertifizierungsstelle separat mitgeteilt werden, sowie noch diese Option auf true gesetzt werden:
security.enterprise_roots.enabled on the about:config page
Verwendete Software:
CentOs 7
OpennSSL 1.0.2
Apache 2.4.6.