Intranet Linux Apache Server mit SSL-Verschlüsselung die von Domänen-Client-PCs als „sicher“ eingestuft wird.
Windows Server:
servername.firma.intern als DNS Eintrag auf dem DC hinzufügen:
DNS-Manager
DNS -> DC -> Forward-Lookupzonen -> firma.intern
Rechtsklick -> Neuer Host
Name -> Servername
IP-Adresse -> IP vom Server eintragen (für diese Anleitung verwende ich im folgenden 192.168.1.5 als IP)
-> Host hinzufügen
Linux Server:
mkdir /etc/apache2/ssl
cd /etc/apache2/ssl
openssl genrsa 2048 > server.key
openssl req -new -sha256 -key ./server.key > request.csr
Country Name (2 letter code) [AU]: DE
State or Province Name (full name) [Some-State]: Bundesland
Locality Name (eg, city) []: Stadt
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Firma
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []: servername.firma.intern
Email Address []: email@firma.de
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:
cat request.csr in die Zwischenablage kopieren oder per WinSCP runterladen (ggf. vorher nach /home/user kopieren)
Windows Server:
Es muss die Rolle Active Directory-Zertifikatdienste aktiv sein (Zertifizierungsstellen-Webregistrierung wird nicht mehr benötigt).
Powershell (dies aktiviert SAN damit auch Chrome das Zertifikat akzeptiert):
certutil -setreg policy\EditFlags +EDITF_ATTRIBUTESUBJECTALTNAME2 certutil -setreg ca\csp\CNGHashAlgorithm SHA256 net stop certsvc net start certsvc
SSL-Zertifikat per Powershell anfordern/generieren:
$caServer = "DC\Firma-DC-CA" # Name der CA im Format: Server\CAName
$certTemplate = "WebServer" # Name des Zertifikat-Templates (muss auf CA freigegeben sein)
$csrPath = "C:\Temp\request.csr" # Pfad zur CSR-Datei vom Linux-Server
$certPathDER = "C:\Temp\server_neu.cer" # Pfad / Dateiname vom neu generierten Zertifikat
$dnsName = "servername.firma.intern"
$ipAddress = "192.168.1.5"
$sanAttributes = "CertificateTemplate:$certTemplate`n" + `
"san:dns=$dnsName&dns=$ipAddress&ipaddress=$ipAddress"
certreq.exe -submit -config "$caServer" -attrib "$sanAttributes" "$csrPath" "$certPathDER"
server_neu.csr mit WinSCP auf den Linux Server kopieren nach /home/user
Linux Server:
mv /home/user/server_neu.cer /etc/apache2/ssl/server.cer chown root:root server.cer chmod -R 600 /etc/apache2/ssl
vi /etc/apache2/sites-available/default-ssl.conf
neu einfügen:
SSLCertificateFile /etc/apache2/ssl/server.cer
SSLCertificateKeyFile /etc/apache2/ssl/server.key
a2enmod ssl
a2ensite default-ssl
service apache2 reload
Dann sollten Edge und Chrome https://servername.firma.intern/ und https://192.168.1.5/ akzeptieren.
Im Firefox muss man noch eine Einstellung setzen damit Domänen-Zertifikate funktionieren:
about:config
security.enterprise_roots.enabled von false auf true setzen (Rechtsklick -> umschalten)